:cache => true
选项对于stylesheet_link_tag
和javascript_include_tag
不起作用。这是真的吗?我发现:cache => true
有时会生效,但有时不会(很奇怪!)此外,这里最好的解决方案是什么?理想情况下,它能够无缝地合并和压缩所有CSS / JS。 Heroku Asset Packager声称可以做到这一点 - 还有更好的选择吗?
:cache => true
选项对于stylesheet_link_tag
和javascript_include_tag
不起作用。这是真的吗?我发现:cache => true
有时会生效,但有时不会(很奇怪!)我在Heroku上使用Jammit,效果很好。你可以在本地构建资产并检入到Heroku中。使用:
jammit --force
当前版本0.5.1在Heroku上存在问题,但您可以从git://github.com/documentcloud/jammit.git安装修复版本。
如果您使用的是Rails 3,请在Bundler的Gemfile中指定以下内容:
gem "jammit", :git => "git://github.com/documentcloud/jammit.git"
对于Rails 2.*版本
config.gem "jammit", :source => "git://github.com/documentcloud/jammit.git"
祝你好运。
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
以下是压缩您的资源文件的配置选项。
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'
项目名称已经说明了一切:
/tmp
目录下,根据 http://docs.heroku.com/constraints 的说明,这些资产不一定会在请求之间保留。 - Tom Lehman可能有多种方法可以实现这一点,但对我来说有效的方法是在推送之前进行缩小处理。然后我使用一个子树来将构建文件与“源”文件分开。例如,如果您构建到名为“dist”的文件夹中,则可以像这样将其推送到名为heroku/master的子树中:
git subtree push --prefix dist heroku master
只是不要忘记确保 dist 文件夹没有被忽略(通常情况下会默认忽略),所以请相应地编辑您的 .gitignore 文件。
--prefix 命令可以确保 dist 文件夹有效地成为该分支从视角上来说的“根”文件夹。
git push heroku
。没有太多需要修改的地方。 - yfeldblum