【发布时间】:2015-10-08 21:38:00
【问题描述】:
当我这样做时在我的本地机器上:
RAILS_ENV=production bundle exec rake assets:precompile
RAILS_ENV=production bundle exec puma -e production
一切正常。但是,我在 docker 容器中有完全相同的应用程序,用于与 nginx 一起运行的生产。我可以使用 chrome 开发工具在 assets 文件夹中看到 application.css 和 application.js 文件,它们不是空的。但是我有一个没有css/js的页面,应该和nginx有关,但我真的很困惑。
/var/etc/nginx/nginx.conf:
user app sudo;
http{
upstream app {
server unix:/home/app/puma.sock fail_timeout=0;
}
server {
listen 80 default;
root /home/app/app/public;
try_files $uri/index.html $uri @app;
location @app {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://app;
}
}
}
events {worker_connections 1024;}
config/environments/production.rb:
Rails.application.configure do
...
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.serve_static_files = true
config.assets.js_compressor = :uglifier
config.assets.compile = false
config.assets.digest = true
...
end
请不要犹豫,提出任何建议。 :)
更新: 我刚刚意识到我的控制台中有这两个错误:
new:11 Resource interpreted as Stylesheet but transferred with MIME type text/plain: "http://localhost/assets/application-5574b338d88d13681ef38b9b0800bc47.css".
new:12 Resource interpreted as Script but transferred with MIME type text/plain: "http://localhost/assets/application-ea59e17aff7f15a316e3e03d49f3daf4.js".
【问题讨论】:
标签: ruby-on-rails nginx puma