29

首先,根据这个答案:cache => true选项在 Herokustylesheet_link_tagjavascript_include_tag不起作用。这是真的?我发现:cache => true偶尔工作,但并不总是(奇怪!)

另外,这里最好的解决方案是什么?理想情况下,它将无缝组合和缩小所有 CSS / JS。Heroku Asset Packager声称可以这样做——有更好的选择吗?

4

8 回答 8

23

我在 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"

祝你好运。

于 2010-09-10T07:05:04.303 回答
8

我发现在这种情况下,添加一个 git pre–commit 钩子来编译和打包资产,然后将它们添加到当前提交中很方便。

使用 Jammit 的我的看起来像这样(在 中.git/hooks/pre-commit):

jammit
rake barista:brew
git add public/assets/*
git add public/javascripts/*

像这样,您的所有资产都会为您打包,您不必再担心了。

于 2011-04-11T17:30:31.407 回答
4

GitHub 有一个很好的答案,我相信你可以修改 Heroku 的部署脚本来集成:

http://github.com/blog/551-optimizing-asset-bundling-and-serving-with-rails

于 2010-02-06T19:49:11.207 回答
3

我还没有在 heroku 上尝试过,但Sprockets可能对此有好处。此外,在过去,我有更多的运气

:cache => 'all.css'
:cache => 'all.js'

而不是“真实”

于 2010-01-21T03:51:13.117 回答
1

这是管理 CSS/Javascript 的另一种方式,但您可能想查看 Rails 插件shoebox

Shoebox 可以进行组合、缩小和缓存。

于 2010-01-21T19:00:20.033 回答
0

以下是压缩资产的配置选项。

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'
于 2014-03-06T05:11:06.307 回答
0

项目名称说明了一切:

http://github.com/amasses/heroku_asset_packager

于 2010-02-10T01:25:26.993 回答
0

可能有多种方法可以做到这一点,但对我有用的是在推动之前缩小。然后我使用子树将我的构建文件与“源”文件分开。因此,例如,如果您构建到一个名为“dist”的文件夹,您可以像这样推送到一个名为 heroku/master 的子树:

git subtree push --prefix dist heroku master

只是不要忘记确保 dist 文件夹不会被忽略(默认情况下通常会被忽略) - 因此请相应地编辑您的 .gitignore 文件。

--prefix 命令确保 dist 文件夹从该分支的角度有效地成为“根”文件夹。

于 2015-09-05T11:44:53.227 回答