我正在开发一个rails应用程序,它有一堆(数百)图像托管在S3服务器上.要让像image_tag这样的帮助器指向这里,我必须通过config/environments/development.rb test.rb和production.rb添加它:
config.action_controller.asset_host = "http://mybucket.s3.amazonaws.com"
Run Code Online (Sandbox Code Playgroud)
但是,这也意味着它在那里寻找CSS和Javascript.这是一个巨大的痛苦,因为每次我更改CSS时我都必须将其重新上传到亚马逊.
所以..有一种简单的方法,我可以让我的应用程序看起来亚马逊的图像,但本地的CSS/Javascript?
(我正在使用Rails 3.0)
您可以将Proc对象传递给config.action_controller.asset_host运行时以编程方式确定结果.
config.action_controller.asset_host = Proc.new do |source|
case source
when /^\/(images|videos|audios)/
"http://mybucket.s3.amazonaws.com"
else
"http://mydomain.com"
end
end
Run Code Online (Sandbox Code Playgroud)
但保持原样,这会http://mybucket.s3.amazonaws.com/images/whatever.png在你使用时给你image_tag :whatever.
如果你想修改路径,你可以做一些非常相似的事情 config.action_controller.asset_path
config.action_controller.asset_path = Proc.new do |path|
path.sub /^\/(images|videos|audios)/, ""
end
Run Code Online (Sandbox Code Playgroud)
这会让你http://mybucket.s3.amazonaws.com/whatever.png与前者相结合.
| 归档时间: |
|
| 查看次数: |
906 次 |
| 最近记录: |