我无法弄清楚造成这个问题的原因。任何想法或建议都非常感激。
我正在迁移到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可能会覆盖帮助者,但只是在生产中这样做?
重复:在这里向右移动的任何推动都会很棒。提前谢谢。
答案 0 :(得分:1)
知道了。
问题1:我偶尔会遇到Runit。今天是这样的一天。 config / application.rb中存在引用旧罗盘修复程序的问题。当试图“h”进入新应用程序时,Runit保持旧应用程序运行。
心理记录:如有疑问,请始终运行 rails c production 。
在此之后,资产路径不是3.0风格,而是差不多。他们现在是/stylesheets/application.css和类似的......没有提到资产目录。
问题2:application.rb中需要链接(如果不需要rails / all)。为什么一切都在开发中以及在生产中编译时,我不能说。但添加一条线来要求链轮铁路为我解决了这个问题。它从来没有进入我的脑海,因为只有路径是错误的,其他一切都很有效,所以可能会缺少一个要求。猜测:开发中的本地资产服务器可能需要屏蔽主要应用程序缺少的链接。
感谢您抽出宝贵时间。很抱歉浪费它。