首先,根據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