我刚刚将我的 Rails 应用程序部署到 Ubuntu 16.04 Droplet。当 rails 服务器从我的本地计算机运行时,我可以在浏览器上查看 myappname.com 网站,但是一旦我关闭 rails 服务器,CSS 就会失败。
此外,如果其他人从我本地计算机以外的设备访问它,CSS 总是会失败。
这里的问题是我在某个地方对我的站点进行了硬编码,以尝试从访问该站点的任何人的本地计算机而不是服务器本身检索文件。根据我看到的错误:
http://localhost:3000/assets/jquery-ui/accordion.self-ahsdjhkjads98ha98shd8ha98hds98hadskjhfo4h8fw9hhw398hhiuh9sd8h8hs89fdhj.css?body=1 Failed to load resource: net::ERR_CONNECTION_REFUSED
因为它在那里写着“本地主机”,所以每个试图加载该页面的人都会尝试用他们本地计算机上的东西来加载它。所以在这种情况下实际上是我的计算机在端口 3000 上监听,我需要调整我的站点的编码方式,以便它从自身而不是本地主机中提取这些 CSS Assets 。
在 config/environments/production.rb
我改变了:
config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?
到:
config.serve_static_files = true
然后在我的生产环境的Ubuntu服务器上运行bundle exec rake assets:precompile
,用sudo service apache2 restart
重启服务器,但还是没能解决问题。非常感谢任何帮助。
最佳答案
您可以尝试将 config/application.rb
中的 config.asset_host
设置为您的域,但听起来您的反向代理配置错误。
关于css - rails : Production assets loading from user's localhost instead of Ubuntu server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41410095/