默认的config.assets.precompile设置只保护application.css和application.js,目的是将所有内容都作为单个样式表和单个javascript文件提供.
显然有些情况下我们不希望这样,所以我们可以在该配置变量的列表中添加项目…
这是我在进入生产时遇到沙盒项目的情况:
>浏览开发中的网站,看到一切正常.资产作为单独的文件链接,并且网站显示正确.
>将网站上传到我的服务器,并尝试让它在生产中运行.第一个错误是说“ie.css”(条件样式表)没有预编译. (我在Safari中,甚至不会下载此样式表:在呈现页面之前,从stylesheet_link_tag帮助程序引发了错误.)
> Ran rake资产:预编译并再次尝试.
>将有问题的项目添加到config.assets.precompile并再次尝试.
>将错误击倒在路边,直到遇到另一个资产错误.
> GOTO 3.
不知道如何解决这个问题,我绕圈了几次,直到我认为我得到了所有的资产,并且该网站正在生产中.然后我在MSIE中尝试了它并点击另一个错误500:“belated_png_fix.js”正在被有条件地加载,并且直到那时它才出现.
所以我的问题是,除了试验和错误或严重依赖集成测试之外,当资产管道发现某些样式表或javascript未添加到预编译列表时,我怎么能预测我的网站不会爆炸?
我也很好奇为什么缺少样式表资产会导致整个页面出错500而不是仅按需编译它或在请求该资产时提供404.这是故意“早早失败”的设计吗?
解决方法
原文地址:https://www.jb51.cc/ruby/269870.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。