0

我已经审查了这个问题 -包括使用 Rails 3.1 资产管道的外部库- 这基本上是我正在寻找的一个警告:我想在资产管道中包含外部 URL,以便在部署到生产时,外部 url 与所需的其他本地文件捆绑到一个文件中。

更多细节:

我的用例是我在 GitHub 上找到了一个我喜欢的插件,并且作为开源社区的优秀成员,我想帮助回馈。我正在考虑的最省时的技术是分叉存储库,然后在开发过程中将需要该文件的本地项目指向所需 JS 文件的原始源,但当该文件与我的应用程序的其余部分捆绑在一起时我部署到登台/生产。这将允许我保持插件与父项目密切相关,但保持我自己的轨道,以便我可以决定何时合并来自基础项目的更新以及将我拥有的任何修复提交回父项目拉取请求。

话虽如此,我还没有找到任何关于如何使用当前的 rails JS 资产管道执行此操作的文档,或者是否有可能。本地的一些快速测试表明这适用于 css 文件但不适用于 js 文件。谁能确认这是否可能?谢谢!

4

1 回答 1

0

我会使用类似这个自定义 rake 任务的东西。基本上,您所做的是将 rake 任务写入部署脚本的开头,但经过修改以将文件放入您的 vendor/assets 文件夹(或者您希望将其拉入资产管道的任何位置。)

这样,您在部署时提取请求的文件,但当您的资产管道捆绑所有内容时,它就在您的代码中。

这是链接腐烂的代码:

namespace :remote_file do
  desc "Get a file from a remote server"
  task :fetch do
  # based on http://snippets.dzone.com/posts/show/2469
  # http://farm1.static.flickr.com/92/218926700_ecedc5fef7_o.jpg
  Net::HTTP.start("farm1.static.flickr.com") do |http|
    resp = http.get("/92/218926700_ecedc5fef7_o.jpg")
    open("fun.jpg", "w") { |file| file.write(resp.body) } 
  end
end
于 2013-04-15T19:01:42.600 回答