2

我有一个带有机车 cms 的 rails 应用程序。我希望能够通过我的 CMS 引用特定的 css/js 文件,并且能够使用 assets/subfolder/file.css 之类的 URL 进行开发。当我使用 nginx 和 unicorn 将我的应用程序部署到服务器时,这些 URL 不再有效,我的所有图像都停止加载。将以下内容添加到我的 nginx conf 文件后,图像开始加载,但 CSS/JS 文件仍然无法正常工作。

root /var/www/myproject/public/;
location ~ ^/assets/ {
  expires 1y;
  add_header Cache-Control public;

  add_header ETag "";
  break;
}    

我需要配置什么,以便 nginix 和 unicorn 可以从 app/assets/css 或 app/assets/javascript 目录提供资产?

4

1 回答 1

0

希望您不想预编译资产是有充分理由的,但这应该会有所帮助。

#{Rails.root}/config/environments/production.rb
config.serve_static_assets = true

默认情况下,Rails 应用程序不会在Rails.env == "production". 在开发/测试环境中,Rails 将处理对 assets/subfolder/file.css 的请求,并正确地从#{Rails.root}/app/assets/subfolder/file.css.

rake assets:precompile将生成的 css/js 文件放置在其中,这些文件将相对于您的 nginx 配置中#{Rails.root}/public/assets的位置正确解析。root

expires 1y;您的 nginx 配置中,具有缓存副本的浏览器可能不会请求对引用的 css/js 文件进行任何更改。

于 2012-10-11T07:00:59.407 回答