我的capistrano正确预编译管道中的所有资产,并生成带有完整包装的application.js和application.css文件。
问题是我的应用程序仍在查找服务器上不存在的所有单独的.js和.css文件,这会从nginx服务器生成大量404 not found
个响应。
css和javascript在app/views/layouts/application.html.haml
文件中加载:
= stylesheet_link_tag "application", media: "all"
= javascript_include_tag "application"
并在app/assets/javascript/application.js
中加载组件:
//= require jquery
//= require jquery_ujs
//= require jquery.ui.datepicker
//= require jquery.timepicker
//= require colorbox-rails
//= require twitter/bootstrap
//= require_tree .
如何在预编译发生时让应用程序仅使用单个预编译文件?
谢谢,
答案 0 :(得分:1)
编译资产是production
环境的一项功能。在development
环境中,您通常不希望这样。如果一行引发异常,你想知道它在哪个文件中,这样你就可以轻松实现它。
这由config/environments/*.rb
配置文件中的此行管理:
config.assets.compress = true # or false
如果true
,它会超出合并资产。如果false
,则预计资产位于自己的文件中。
在development
中,这通常是false
。在生产中,这通常是true
。但无论哪种方式,它都是特定于环境的设置,因此您不会在同一环境下的两个地方以不同的方式工作。
也许您想要设置staging
环境?