gpt4 book ai didi

ruby-on-rails - 没有路由匹配 [GET]/assets

转载 作者:行者123 更新时间:2023-12-03 04:27:09 27 4
gpt4 key购买 nike

我有一个 Rails 应用程序,正在尝试在生产环境中进行测试。我运行了 RAILS_ENV=生产 rake asset:precompile ,它在/public/assets 中生成了我的所有 Assets 。问题是,当我启动我的应用程序时,我得到:

ActionController::RoutingError (No route matches [GET] "/assets/application-eff78fd67423795a7be3aa21512f0bd2.css"):

此文件确实存在于 /public/assets/application-eff78fd67423795a7be3aa21512f0bd2.css 中。

对于为什么我收到此 RoutingError 有什么想法吗?

最佳答案

在生产模式下,Rails 将不负责提供静态资源。因此,您会收到此错误。 Thin 也不会这样做,因为它只是 Rails 的包装。

这由应用程序中 config/environments/Production.rb 中的此设置控制:

config.serve_static_files = false

或者在 Rails 5 中:

# config/environments/production.rb
config.public_file_server.enabled = true

或将 ENV['RAILS_SERVE_STATIC_FILES'] 设置为 true。

您可以设置为 true 或使用真正的服务器(例如 Apache 或 Nginx)来提供静态 Assets 。我怀疑 Pow 也可能这么做。

<小时/>

如果您使用 Heroku,他们建议使用 rails_12factor gem,它默认启用此设置。将 gem 放入 Gemfile 中的 product 组中,如下所示:

group :production do
gem 'rails_12factor'
end

关于ruby-on-rails - 没有路由匹配 [GET]/assets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7829480/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com