繁体   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