在asset_pipeline中包含来自rails应用程序之外的资产
Posted
技术标签:
【中文标题】在asset_pipeline中包含来自rails应用程序之外的资产【英文标题】:Include assets from outside the rails app in asset_pipeline 【发布时间】:2015-10-10 15:49:07 【问题描述】:我正在扩展现有代码库,需要在我编写的代码和现有代码之间明确划分。我通过使用它来处理 html 文件:
render :file => Rails.root.to_s.split('/')[0...-1].join('/')+'/my-extension/path/to/file/
(真实Rails.root的第一部分剪辑,允许我使用与应用程序相同级别的文件夹)
现在我需要包含需要预编译的其他文件,例如SASS-CSS。我尝试像这样将它们添加到资产管道中:
config.assets.precompile += [Rails.root.to_s.split('/')[0...-1].join('/')+'/my-extension/app/assets/stylesheets/*.css']
或使用特定文件名:
config.assets.precompile += [Rails.root.to_s.split('/')[0...-1].join('/')+'/my-extension/app/assets/stylesheets/overrides.css']
以上两种方法都没有成功。我怎样才能做到这一点?
【问题讨论】:
【参考方案1】:您能否尝试创建一个从 Rails 根目录到扩展资产目录的软链接,并将其包含在资产路径中。
$ cd your rails_project
$ ln -s /path/to/extension/assets extension-assets
在配置中
config.assets.paths << Rails.root.join("extension-assets")
【讨论】:
是的,这就是我刚刚做的事情;)虽然希望有一个更清洁的解决方案。以上是关于在asset_pipeline中包含来自rails应用程序之外的资产的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Rails 的 JSON 响应中包含 cookie?
Rails 5/6:如何在 webpacker 中包含 JS 函数?