Rails资产管道与子
我已经开始在我的应用程序中使用Rails Asset Pipeline。 它非常适合样式表和JavaScript,但我无法让我的图像成功返回。 我想我明白为什么,但我不知道如何解决它。
我的应用程序使用子域名:bob.myapp.com/,mandy.myapp.com/等。当我在视图中放置一个image_tag链接,例如link_to image_tag('remove.png'...)
它会用HTML属性src="/assets/remove.png"
。 但是,合理的是,这意味着浏览器正在查找的位置是:http://bob.myapp.com/assets/remove.png
如果我将它直接粘贴到我的地址栏中,则找不到。 如果我将子域更改为http://www.myapp.com/assets/remove.png(即将bob切换到www ),图像将成功检索。
那么,我该如何强制我的image_tag
从www中寻找一个源,或者我可以以某种方式默认情况下让资产管道在所有子域中工作?
Rails 3.1.0 Ruby 1.9.2p0
您可能想要在config/environments/production.rb
(或您定义的任何其他环境)中设置资产主机。
例如:
MyApp::Application.configure do
config.action_controller.asset_host = "http://www.myapp.com"
end
由于它接受Proc
,因此您可以在那里进行一些计算并为资产设置不同的主机:
MyApp::Application.configure do
config.action_controller.asset_host = Proc.new do |source|
subdomain = compute_subdomain(source)
"http://#{subdomain}.myapp.com"
end
end
image_tag(source, options)
助手会尊重它并为资产输出完整的url。
虽然在我看来,我建议将所有资产放在每台资产服务器上,这样就不需要设置它。
链接地址: http://www.djcxy.com/p/79013.html