【发布时间】:2011-12-06 09:23:31
【问题描述】:
我不知道是什么导致了这个问题。非常感谢任何想法或建议。
我正在迁移到 Rails 3.1,并且在开发中一切正常。但是测试生产部署我根本没有得到任何资产......而不是通常的原因:)
最好在我的布局中显示主要的 javascript 包含行。
这行haml:
= javascript_include_tag 'application'
在开发中我得到:
<script src="/assets/application.js" type="text/javascript"></script>
在生产中,同一行如下所示:
<script src="/javascripts/all.js?1320673090" type="text/javascript"></script>
在生产中,包含助手的行为仍然像我在 3.0 上一样。资产编译得很好。它们位于 public/assets 文件夹中(就像清单一样),如果我将浏览器指向正确的 url,nginx 就可以很好地为它们服务。
我在服务器上使用 bundle exec rails -v 检查了我的 Rails 版本。我找回了 3.1.3 版本。此外,服务器上的资产编译按预期工作的事实应该表明事情设置“通常没问题”。我的生产环境包含以下资产相关行:
config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = false
config.assets.digest = true
config.assets.precompile << /(^[^_]|\/[^_])[^\/]*/ # from https://gist.github.com/1184843
我猜一些 Gem 可能会覆盖助手,但只在生产中这样做?
重复:任何向正确方向轻推都会很棒。提前致谢。
【问题讨论】:
-
您确定您的生产环境使用的是正确的 Rails 版本吗?在不知道您的设置的情况下,很难提供帮助。你是用乘客运行 nginx 还是 apache?如果是,你升级了吗?
-
在上面添加了一些关于 Rails 版本等的更多信息。
-
但我忘了提到资产是使用 rails guides 网站上的配置 sn-p 从 nginx 提供的。如果我将浏览器指向它们,它们确实可以正常使用。
-
在生产环境中检查 app/views/layouts/application_layout.html.erb 文件,是否与您的最新版本相同?
-
检查了布局。看起来不错。
标签: ruby-on-rails helper asset-pipeline