2012-03-16 116 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 /抱歉。资产管道应该遍历子目录。

相关问题