簡體   English   中英

如何在Rails 2.3應用程序中使捆綁的gem中的靜態資產保持同步?

[英]How do I keep static assets from a bundled gem in-sync in my Rails 2.3 app?

我正在開發Rails 2.3應用程序,並希望將我的一些靜態資產(JS,CSS)重構為單獨的gem。 問題在於,Rails 2.3引擎不像Rails 3引擎那樣支持公共目錄,因此從應用程序訪問這些文件的唯一方法是將它們復制過來。

我曾經想到的是使用某種“ afterBundle”掛鈎,在“捆綁包安裝”完成后,可以使用該掛鈎自動復制資產。 我查看了Bundler的文檔和來源,卻沒有發現我所想的東西。 別人如何解決這個問題?

使用Bundler的一個問題是,gem現在有兩個安裝路徑, gem installbundle install 即使您確實對Bundler進行了Bundler安裝后操作,但如果有人gem install它也不會運行。 一種解決方案是使gemspec相對為空,例如:

https://github.com/hedgehog/fog/blob/bundler/fog.gemspec

然后模擬gem install后鈎子,它實際上會調用bundle install

https://github.com/hedgehog/fog/commit/32878aaa9ef1fd3add148039fecd6e4059873d5d

通過此方法,您可以在運行bundle install后添加安裝后操作。

但是,通過將后安裝步驟添加到gem install您又重新引入了開放性問題-兩種不同的安裝路徑,只是現在gem installbundle install后)比bundle install功能更多。

另請參閱: http : //blog.costan.us/2008/11/post-install-post-update-scripts-for.html

暫無
暫無

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

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