簡體   English   中英

Heroku和Rails 4:某些JavaScript無法正常工作

[英]Heroku and Rails 4: some javascript not working

我正在嘗試在Heroku Rails 4應用程序上顯示一個javascript項目。 在我的本地開發計算機上,一切運行正常。 無法在Heroku上運行。

在我的application.html.erb文件中,添加了:

<%= javascript_include_tag "application" %>

在另一個視圖文件(events.html.erb)中,我具有:

<script type="text/javascript">
   $(document).ready(function()
   ...code to add data to a timeline using getjson()...
</script>`

指的是Assets> javascripts文件夾中的timeline.js文件。 添加事件后(使用Rails CRUD操作),javascript代碼正在調用getJson()方法並將事件添加到時間軸。這在本地計算機上按預期工作。

當我按下Heroku時,可以通過導軌添加事件,但是不會顯示時間軸。

我最初的想法是沒有在Heroku上加載Javascript,因此我添加了一個簡單的方法:

<script type="text/javascript">
   alert('Displays OK')
</script>

呼叫,這在Heroku(以及我的本地計算機)上也可以正常顯示。

在Heroku上查看頁面源代碼時,我可以看到:

<script src="/assets/application-6da332d35efc3706e98f87ead9900f20.js">

因此,似乎timeline.js文件已預編譯(似乎是timeline js的最小化版本)。

在我的本地計算機上,我沒有看到預編譯的js文件,但看到了:

<script src="/assets/timeline.js?body=1"></script>
<script src="/assets/timeline.min.js?body=1"></script>

它在Heroku上顯示javascript警報而不顯示時間軸的事實似乎表明預編譯中的javascript代碼有些混亂。

我在heroku日志中看不到任何明顯的內容。 它說,slug編譯成功完成,並且我看不到錯誤消息。

有沒有一種方法可以強制Heroku不使用預編譯的js文件,因此可以在Heroku上使用:

   <script src="/assets/timeline.js?body=1"></script>
   <script src="/assets/timeline.min.js?body=1"></script>

我在production.rb文件中具有以下內容:

config.serve_static_assets = false
config.assets.js_compressor = :uglifier
config.assets.compile = true
config.assets.compress = true
config.assets.digest = true
config.assets.debug = false

希望有人可以幫助我。 幾天來這一直困擾着我。 任何幫助表示贊賞。 謝謝!

我認為您需要指定必須預先編譯timeline.js。 在config / environments / production.rb上,添加以下內容:

config.assets.precompile += %w( timeline.js )

在您的視圖中,將時間軸js包含在其中:

<%= javascript_include_tag "timeline" %>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM