我想要獲得一個在Heroku Rails 4 applicarion上顯示的JavaScript項目。在我的本地開發機器上,一切都運行完美。無法在Heroku上運行。Heroku和Rails 4:一些JavaScript不工作
以我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>`
其指的是資源> javascripts文件夾中的timeline.js文件。當添加一個事件時(使用Rails CRUD操作,javascript代碼調用getJson()方法並將事件添加到時間軸上。在本地機器上按預期工作。
當我推到Heroku時,可通過欄杆添加事件,但不顯示時間軸
我最初的想法是,JavaScript是沒有被加載在Heroku上,所以因此我添加了一個簡單:
<script type="text/javascript">
alert('Displays OK')
</script>
電話,這顯示就好了在Heroku上(以及在本地機器上)。
當在Heroku網頁源代碼看,我可以看到:
<script src="/assets/application-6da332d35efc3706e98f87ead9900f20.js">
所以看來timeline.js文件進行預編譯(似乎時間軸JS的最小化版本)。
在我的本地機器上,我沒有看到預編譯的js文件,但我看到:
<script src="/assets/timeline.js?body=1"></script>
<script src="/assets/timeline.min.js?body=1"></script>
是在Heroku上,它顯示的javascript警報,但沒有時間表,似乎表明這一事實在預編譯中有些東西與javascript代碼搞砸了。
我在heroku日誌中看不到任何明顯的東西。它說slu comp編譯成功完成,我看不到錯誤消息。
有沒有一種方法,我可以強制執行的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
希望有人能幫助我。這一直困擾着我幾天。任何幫助讚賞。 謝謝!
不壓縮你的資產的選項? –