image_tag,include_tags等上的根目录错误

时间:2010-04-02 06:40:25

标签: ruby-on-rails ruby

在我的开发设置中,生成的路线神秘地指向我的公共www服务器。

[产率]

<script src="http://www.mysite.com//javascripts/prototype.js?1265304231" type="text/javascript"></script> 
<script src="http://www.mysite.com//javascripts/effects.js?1265304231" type="text/javascript"></script> 
<script src="http://www.mysite.com//javascripts/dragdrop.js?1265304231" type="text/javascript"></script> 
<script src="http://www.mysite.com//javascripts/controls.js?1273647885" type="text/javascript"></script> 
<script src="http://mysite.opzi.com//javascripts/application.js?1273611341" type="text/javascript"></script>

此选项设置在何处?在我的生活中找不到它。

4 个答案:

答案 0 :(得分:3)

如果您将ActionController::Base.asset_host设置为指向environment.rb中的公共服务器,则会发生这种情况。

答案 1 :(得分:1)

因为没有人提供解决此问题的方法:

问题可能是你的一个配置中的额外斜线。 asset_host前缀为以编程方式生成的所有资产代码,因此请使用ERB:

<%= stylesheet_link_tag :defaults %>

会给你相当于:

<%= "<link href='#{ActionController::Base.asset_host}/stylesheets/defaults.css' media='screen' rel='stylesheet' type='text/css' />" %>

要检查asset_host的内容,只需将其打印到您的某个页面的某个位置:

asset_host is set to: "<%= ActionController::Base.asset_host %>"

我怀疑你会得到像http://www.mysite.com/这样的东西。问题是结束斜线。它应该设置为http://www.mysite.com。现在只需要跟踪你的配置中的设置。一种简单的方法就是在您的来源中搜索http://www.mysite.com/,以便快速找到相关设置!

如果您只想在当前流程中覆盖它,可以将asset_host设置为您想要的任何内容:

ActionController::Base.asset_host = "http://www.mysite.com"

答案 2 :(得分:0)

您应该检查config/environment.rbconfig/environment/development.rb个文件。

专门查看任何asset_host标记。来自guides.rubyonrails.org:

  

asset_host提供一个字符串,该字符串预先附加到AssetHelper中的所有生成URL的帮助程序。这旨在允许将所有javascript,CSS和图像文件移动到单独的资产主机。

有关详细信息,请参阅http://guides.rubyonrails.org/configuring.html

答案 3 :(得分:0)

如果您使用的是Facebooker,可能是facebooker.yml配置文件中的callback_url设置正在影响ActionController :: Base.asset_host值并破坏您的路由。