我通过设置ActionController :: Base.asset_host来读取,您可以控制rails查找资产的位置。但是,默认情况下,Rails应该在'/ public /...'
中查找不知何故,我的Rails应用程序知道在开发模式下查看我的生产地址,并且我没有在任何地方设置ActionController :: Base.asset_host。我不确定它在哪里找到这些信息。有没有其他地方可以设置?我不认为我的部署配方应该与它有任何关系......
<%= image_tag 'my_logo.png' %>
导致Rails检查我的生产服务器中的文件。与样式表相同。
答案 0 :(得分:0)
我不太确定Rails如何知道寻找我的生产域名。我几乎在我的代码中删除了它。根据{{3}},“默认情况下,Rails链接到公共文件夹中当前主机上的这些资产”,但我不太清楚这意味着什么。为了防止再次出现问题并允许一些灵活的配置,我将资产主机域添加到我的环境配置中。我现在有类似的东西:
EnvironmentConfig = YAML.load(File.read(Rails.root + "config/#{rails_env}" + 'environment.yml'))[rails_env]
ActionController::Base.asset_host = EnvironmentConfig['asset_host']
现在一切都很好。仍然不知道Rails如何知道我的生产域。