ruby-on-rails – 如何在生产之前捕获rails资产管道中的错误?
我刚刚熟悉Rails 3.1,我花了一些时间来更新一个旧项目并试图弄清楚新资产管道在开发模式与生产模式之间的表现.
默认的config.assets.precompile设置只保护application.css和application.js,目的是将所有内容都作为单个样式表和单个javascript文件提供. 显然有些情况下我们不希望这样,所以我们可以在该配置变量的列表中添加项目… 这是我在进入生产时遇到沙盒项目的情况: >浏览开发中的网站,看到一切正常.资产作为单独的文件链接,并且网站显示正确. 不知道如何解决这个问题,我绕圈了几次,直到我认为我得到了所有的资产,并且该网站正在生产中.然后我在MSIE中尝试了它并点击另一个错误500:“belated_png_fix.js”正在被有条件地加载,并且直到那时它才出现. 所以我的问题是,除了试验和错误或严重依赖集成测试之外,当资产管道发现某些样式表或javascript未添加到预编译列表时,我怎么能预测我的网站不会爆炸? 我也很好奇为什么缺少样式表资产会导致整个页面出错500而不是仅按需编译它或在请求该资产时提供404.这是故意“早早失败”的设计吗? 解决方法
我刚刚发布了一个名为
assets_precompile_enforcer的gem,它确保开发人员在开发过程中不会忘记将资产添加到config.assets.precompile.如果您通过javascript_include_tag或stylesheet_link_tag包含资产,则会引发异常,并且它与config.assets.precompile中的过滤器不匹配.
这意味着资产错误将在开发期间被捕获,而不是在部署到生产后被发现. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |