我在部署到生产之前预编译资产。生产模式运行良好,但application.js和application.css在开发中是多余的。我尝试rake assets:clean
并删除仍然无效的所有公共资产。
冗余applicaiton.css和application.js
<link href="/assets/application.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/css/custom-theme/jquery-ui-custom-lastest.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/animate.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/jquery_loadmask/jquery_loadmask.css?body=1" media="screen" rel="stylesheet" type="text/css" />
...
<script src="/assets/tags.js?body=1" type="text/javascript"></script>
<script src="/assets/wedapp.js?body=1" type="text/javascript"></script>
<script src="/assets/works.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>
config.assets.compress = false
config.assets.debug = true
config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = true
config.assets.initialize_on_precompile = false
config.assets.digest = true
config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
现在,我需要在development.rb的config.assets.debug中设置false,但是我无法在预编译之前调试资产。这真让我烦恼。
有什么建议吗?感谢。
尝试更改application.js文件,删除一个空行和rake assets:clean RAILS_ENV=development
,现在效果很好。
答案 0 :(得分:0)
如果您在本地进行预编译,并希望保留所有正常的开发模式功能,那么您可以调整设置以允许两者。
在development.rb中放置以下行:
config.assets.prefix = "/dev-assets"
这会覆盖application.rb中设置的任何内容(通常为“/ assets”)。
您还需要在application.rb中使用它:
config.assets.initialize_on_precompile = false
然后,您可以将已编译的资产提交给源代码控制并进行部署,而不必担心以后清理它们。
(请参阅我的full blog post主题)