[英]Best way to combine and minify JS / CSS on Heroku
首先,根据这个答案 , stylesheet_link_tag
和javascript_include_tag
上的:cache => true
选项在Heroku上不起作用。 这是真的? 我发现:cache => true
偶尔会工作,但并不总是(很奇怪!)
另外,这里最好的解决方案是什么? 理想情况下,它可以无缝地组合和缩小所有CSS / JS。 Heroku Asset Packager声称这样做 - 有更好的选择吗?
我在Heroku上使用Jammit。 效果很好。 您可以在本地构建您的资产并登记到heroku。 采用
jammit --force
当前版本0.5.1在heroku上有问题,但您可以从git://github.com/documentcloud/jammit.git安装修复版本
如果您使用的是Rails 3,请在捆绑器Gemfile中指定以下内容:
gem "jammit", :git => "git://github.com/documentcloud/jammit.git"
对于Rails 2. *
config.gem "jammit", :source => "git://github.com/documentcloud/jammit.git"
祝好运。
我发现添加一个git预提交钩子来编译和打包资产,然后将它们添加到当前提交在这种情况下派上用场。
我使用Jammit看起来像这样(在.git/hooks/pre-commit
):
jammit
rake barista:brew
git add public/assets/*
git add public/javascripts/*
像这样,您的所有资产都将为您打包,您不必再担心它了。
GitHub有一个很好的答案,我相信你可以修改Heroku的部署脚本来集成:
http://github.com/blog/551-optimizing-asset-bundling-and-serving-with-rails
这是管理CSS / Javascript的另一种方式,但您可能想查看Rails插件鞋盒 。
Shoebox可以进行组合,缩小和缓存。
以下是压缩资产的配置选项。
http://guides.rubyonrails.org/asset_pipeline.html#customizing-the-pipeline
config.assets.css_compressor = :yui
config.assets.js_compressor = :uglifier
config.assets.compress = true
gem 'uglifier'
gem 'yui-compressor'
可能有多种方法可以做到这一点,但对我来说有用的是在推动前缩小。 然后我使用子树将我的构建文件与“源”文件分开。 因此,例如,如果您构建到名为“dist”的文件夹,则可以像这样推送到名为heroku / master的子树:
git subtree push --prefix dist heroku master
只是不要忘记确保不会忽略dist文件夹(默认情况下通常是这样) - 因此请相应地编辑.gitignore文件。
--prefix命令确保dist文件夹从该分支的角度有效地成为“根”文件夹。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.