2013-11-25 51 views
1

我在vendors/assets/javascripts文件夾中的JavaScript,我有這行代碼:的Rails:在供應商Heroku的資產中獲得了404

<script src="assets/grid.js"></script> 

在我app/views頁面之一。

grid.js文件(供應商目錄內)的作品,當我在本地主機對其進行測試,但是當我預編譯和推我的應用程序的Heroku,它說:

GET http://www.domain.com/assets/grid.js 404 (Not Found) 

爲什麼會發生這種情況?

感謝

回答

3

我會用javascript_include_tag來代替,而應工作

<%= javascript_include_tag("grid.js") %> 

在生產中我相信asset pipeline增加了一個散列到的grid.js名稱的指紋(即文件的第1.2節)所以你不能使用該路徑<script src="assets/grid.js"></script>

+0

我仍然得到一個錯誤,但這次它說:'ActionView :: Template :: Error(grid.js不是預編譯)'這很奇怪,因爲我做了'rake資產:預編譯'還有'heroku運行rake資產:預編譯' – hellomello

+0

試着把'config.assets.precompile + = ['grid.js']'放在你的'config/application.rb'文件中 – user2262149

+0

嗯我試過了起初,但它沒有奏效。所以然後我添加了這個並將'config.assets.compress = false'改爲'true'。這聽起來是正確的嗎? – hellomello

0

我試過了:設置config.assets.compress = true在我的config/environments/production.rb和一切都很好,但它是一個糟糕的做法並且獲得糟糕的表現喲可以看到本作的詳細信息config.assets.compile=true in Rails production, why not?

我的解決辦法: 運行在您的本地項目RAILS_ENV=production bundle exec rake assets:precompile和推動/公共/同意生成的所有文件可以在您的github回購和heruko部署。呦可以閱讀這個更多的細節https://devcenter.heroku.com/articles/rails-asset-pipeline#compiling-assets-locally

相關問題