asset_path在生产环境中返回错误的路径

时间:2013-12-04 09:18:12

标签: css ruby-on-rails asset-pipeline erb

我有一个css包含这个:

font.css.erb

@font-face {
  font-family: 'thsarabun';
  src: url('<%= asset_data_uri('THSarabunNew.woff') %>');
}

在开发环境中一切正常。

但是当我想在生产环境中使用它时。我决定使用Apache2的乘客,我希望应用程序位于http://localhost/rails-app当我使用此命令预编译资产时:

RAILS_ENV=production rake assets:precompile

我得到application-<hash>.css这样:

@font-face{
  font-family:'thsarabun';
  src:url('/assets/THSarabunNew-<hash>.woff');
}

哪个网址错误,而应该是/rails-app/assets/THSarabunNew-<hash>.woff

我该如何解决这个问题?

问候,萨伦

2 个答案:

答案 0 :(得分:1)

要从子目录运行Rails应用程序,您需要更改配置。

如果它只是在你想要的localhost上,请在config/environments/production.rb中添加以下内容:

YourAppName::Application.configure do
  ...
  config.action_controller.relative_url_root = '/rails-app'
end

看看它是否适合你。

答案 1 :(得分:0)

您可以在config/production.rb中设置资产前缀值。默认为'/ assets'。所以在你的情况下,它将是:

config.assets.prefix = "/rails-app/assets"