我想弄清楚如何让boostrap-sass在生产模式下工作。我正在使用apache将代理转换为webrick或puma,但直接在公共/资产中提供静态资产。当我预编译资产时,bootstrap css被包含在application-(hash).css中,并且它可以正常工作。
然而,编译的css引用了一个图像文件(glyphicons-halfling.png)而没有附加文件内容的哈希值。图像文件包含在public / assets目录中,可以通过在地址栏中输入正确的文件名来浏览它,但是css中的文件名与它不匹配。我创建了一个简单的演示应用程序来演示此问题,代码在我的github page
上 glyphicon文件名为glyphicons-halflings-c806376f05e4ccabe2c5315a8e95667c.png
[编辑]
仍然想要回答这个问题,但我刚刚重命名了有问题的文件来删除哈希。由于这些文件不太可能经常更改,因此这应该可以正常工作
答案 0 :(得分:0)
认为我已经破解了,当你运行rake资产:预编译时,你似乎必须在它前面加上RAILS_ENV = production,以便它在生产模式下正常工作(我猜那种有意义)。如果不这样做,您的一些资产将被预编译,但辅助方法将不会生成正确的路径。
tl:dr,RAILS_ENV=production rake assets:precompile