2012-03-16 115 views
1

我在應用程序中定義的JS文件 - app/assets/javascripts/client/some-client.js.coffee的Rails 3.2資產管道問題

在我的dev的包膜我可以訪問通過URL文件 - /assets/client/some-client.js

但我不能做同樣的生產? ...這意味着URL不起作用,有什麼可能是錯誤的?

+0

生產服務器的公共/資產目錄中有哪些文件? – James 2012-03-17 00:04:30

+0

您是否使用Chrome來檢查任何javascript錯誤?如果是這樣,它是否給你一個未找到的404資源或其他東西? – PhillipKregg 2012-03-17 03:25:26

回答

3

在prod中,如果使用默認配置,則只能訪問預編譯的文件。

您可以定義config/environments/production.rb預編譯的資產:

config.assets.precompile += %w(some-client.js blabla.js some-client.css) #etc... 

運行rake assets:precompile到...預編譯您的資產。

瞭解更多本指南:http://guides.rubyonrails.org/asset_pipeline.html

+0

所以我添加了config.assets.precompile + =%(some-client.js)並嘗試通過「/assets/some-client.js」訪問該文件,但它不起作用 – kapso 2012-03-17 00:22:08

+0

您是否正在使用Rails Javascript輔助方法? – 2012-03-17 00:27:39

+0

您是否運行'rake資產:預編譯'? (如果它仍然不起作用,你可能想嘗試在你的配置中添加'client/some-client.js'而不是'some-client.js',不確定) – Robin 2012-03-17 03:19:36

0

如果你沒有找到它,但要確保你訪問它通過<%= javascript_include_tag「一些客戶」%>。隨着資產管道處理查找其預先編譯資產的位置。隨着config.assets.precomile + =%(some-client.js)。另外,如果輔助函數在生產中找不到,你可能想嘗試移動客戶端/資產/ javascript /客戶端我認爲它尋找資產,例如app/assets/javascripts/lib/assets/javascripts /和vendor/assets/javascripts /如果我瞭解資產管道。它看起來像你沒有在任何這些文件中,所以它可能會跳過它,因爲它沒有看到它。

編輯:

看起來像你在javascripts /抱歉。資產管道應該遍歷子目錄。

相關問題