簡體   English   中英

在Heroku上組合和縮小JS / CSS的最佳方法

[英]Best way to combine and minify JS / CSS on Heroku

首先,根據這個答案stylesheet_link_tagjavascript_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

我還沒有在heroku上嘗試過,但是Sprockets可能對此很好。 而且,在過去,我有更多的運氣

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

而不是'真'

這是管理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'

項目名稱說明了一切:

http://github.com/amasses/heroku_asset_packager

可能有多種方法可以做到這一點,但對我來說有用的是在推動前縮小。 然后我使用子樹將我的構建文件與“源”文件分開。 因此,例如,如果您構建到名為“dist”的文件夾,則可以像這樣推送到名為heroku / master的子樹:

git subtree push --prefix dist heroku master

只是不要忘記確保不會忽略dist文件夾(默認情況下通常是這樣) - 因此請相應地編輯.gitignore文件。

--prefix命令確保dist文件夾從該分支的角度有效地成為“根”文件夾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM