我正在构建我的博客,其管理部分与网站的其他部分有很大不同。所以我决定根据我在The Asset Pipeline文档中理解的内容单独显示。
管理部分按预期正常工作,正确应用了样式。但在生产中它并没有。我已经运行了rake assets:precompile
,它只生成一个版本 application- [blah] .js 。而不是 admin_lite- [blah] .js
我可能做错了什么?非常感谢帮助。
Rails.application.config.assets.precompile += ['admin_lite.js', 'admin_lite.css']
<link href="/stylesheets/admin_lte.css" media="all" rel="stylesheet" />
<script src="/javascripts/admin_lte.js"></script>
config.assets.precompile += ['admin_lite.js', 'admin_lite.css']
添加到config/environments/production.rb
(以及development.rb
进行测试)config.assets.precompile += ['admin_lite.js', 'admin_lite.css']
添加到application.rb
没有成功
错误是一个错字,我使用了错误的文件名,因此没有编译。所以,如果你...
rake assets:precompile
application.css
编译但不是您的自定义清单(例如:admin.css)答案 0 :(得分:1)
您要求预编译的清单名称与设置不符 - 请尝试将lite
更改为lte
答案 1 :(得分:1)
我发现(至少使用Rails 4.1.6),config.assets.precompile中使用的文件扩展名和javascript_include_tag至关重要。
我最近将以下内容添加到我的production.rb:
config.assets.precompile += %w(google/infobox.js)
在使用我拥有的资产的HAML文件中:
=javascript_include_tag "google/infobox"
当然,这就像开发模式中的魅力一样!
因此,我将代码提升为生产,当我在服务器上运行rake assets:precompile
时,我看到预编译文件已创建:
Writing public/assets/google/infobox-85c3151833c8f22f374f4fb25b7f917f.js
真棒!
但唉没有...
长话短说,我必须明确将“.js”扩展程序添加到javascript_include_tag中:
=javascript_include_tag "google/infobox.js"
希望将来能节省一些时间。
也希望有人在我下次碰巧遇到自己的答案时不会绊倒我,我不记得为什么会这样。