首先,根据this answer,stylesheet_link_tag
和javascript_include_tag
上的:cache => true
选项在Heroku上不起作用。这是真的?我发现:cache => true
偶尔工作,但并不总是(奇怪!)在Heroku上合并和缩小JS/CSS的最佳方法
此外,这里最好的解决方案是什么?理想情况下,它将无缝地组合和缩小所有CSS/JS。 Heroku Asset Packager声称这样做 - 有更好的选择吗?
首先,根据this answer,stylesheet_link_tag
和javascript_include_tag
上的:cache => true
选项在Heroku上不起作用。这是真的?我发现:cache => true
偶尔工作,但并不总是(奇怪!)在Heroku上合并和缩小JS/CSS的最佳方法
此外,这里最好的解决方案是什么?理想情况下,它将无缝地组合和缩小所有CSS/JS。 Heroku Asset Packager声称这样做 - 有更好的选择吗?
这是管理你的CSS/JavaScript的方式不同,但你可能要检查出的Rails插件shoebox 。
鞋盒可以进行组合,缩小和缓存。
GitHub上有一个很好的答案,我敢肯定,你可以修改Heroku的部署脚本整合:
http://github.com/blog/551-optimizing-asset-bundling-and-serving-with-rails
Heroku部署脚本是'git push heroku'。没有太多修改。 – yfeldblum 2010-11-12 15:26:46
但是,这会将打包的资产放入'/ tmp'中,根据http://docs.heroku.com/constraints,它不一定会贯穿请求 – 2010-02-10 18:18:50
您尝试过Jammit吗? http://documentcloud.github.com/jammit/我已经阅读了其他公共项目提交的几个提交,但是我没有尝试过。我不得不在不久之前自己测试一下......不要选择预编译,让gem编译资源,然后清除它下面的任何文件,并查看它是否重新编译资产。我没有阅读Jammit的消息来源来确认,但除非你找到别的东西,否则值得一试。 – databyte 2010-02-12 04:02:14
我在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/*
像这一切你的资产将被打包为您和您不必再担心它。
下面是配置选项来压缩您的资产。
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 /主这样子树:
git subtree push --prefix dist heroku master
只是不要忘记,以确保dist文件夹也是不可忽视(它通常是默认情况下) - 因此请相应地编辑.gitignore文件。
--prefix命令确保dist文件夹从该分支的角度有效地成为“root”文件夹。
如果您想使用链轮,请确保您检出https://github.com/jeffrydegrande/sprockets_on_heroku。 Sprockets绝对是值得关注的,因为它将在Rails 3.1中默认捆绑(不确定它是否在Rails 3中)。 – webmat 2011-05-10 14:19:06