我是java环境中的新手。我对资产管道中的轨道3到4几乎没有什么困惑。
目前我在rails 4.2.5中 我在本地环境中创建了一个示例应用程序。 我从app / assets / javascripts中创建了一个新的js并从视图中引用它,一切似乎在我的本地环境中正常工作。
在此之后,我想用生产环境测试它是如何工作的。以下是我所做的步骤。
"NetworkError: 404 Not Found - http://localhost:3000/assets/application-c5c431cb7c0a202f831a634922aaf1d536712002ae74334fb03ba4698b32b84c.js"
。在搜索几个主题时,他们建议添加config.assets.compile = true
。但我认为这不是解决方案的原因,因为它会降低应用程序的速度。
请帮忙。
答案 0 :(得分:2)
默认情况下,如果没有通过资产处理资产,Rails4将返回404 外部代理,如Nginx。 - https://github.com/heroku/rails_serve_static_assets
我建议您查看rails_12factor gem,其中包含rails_serve_static_assets gem,它将允许您的Rails应用提供静态资源(例如.js文件)。
编辑:
你可能不需要宝石(虽然我没试过):
config.serve_static_files
将Rails配置为静态服务 文件。默认为true,但在生产环境中已转为 用作运行的服务器软件(例如NGINX或Apache) 应用程序应该提供静态资产。与默认值不同 设置运行时设置为true(绝对不推荐!)或 使用WEBrick在生产模式下测试您的应用程序。否则你不会 能够使用页面缓存和对经常存在的文件的请求 无论如何,在公共目录下会打你的Rails应用程序。 - http://guides.rubyonrails.org/configuring.html
在Rails 5中,此配置方法已重命名为config.public_file_server.enabled
,rails_serve_static_assets gem根据版本处理正确的命名。