在生产环境中使用预编译资产时引发的RoutingError

问题描述 投票:3回答:1

在预编译资产之后,尝试使用资产管道在生产模式下测试部署简单的Rails 3.1应用程序。 现在使用JRuby和WEBrick 1.3.1; 计划是在JBoss上部署下一步。

一切都在开发环境中运行良好,但在生产中,当客户端请求任何预编译资产时,它会引发RoutingError。

Rails服务器日志如下所示:

开始获取“/assets/application-a04f15ca8cb6078896dbdc22266757d9.css”for 127.0.0.1 at 2012-02-06 18:19:04 -0500

ActionController :: RoutingError(没有路由匹配[GET]“/assets/application-a04f15ca8cb6078896dbdc22266757d9.css)

预编译资产位于应用程序public / assets目录中。

我应该期望WEBrick能够处理/公共/资产吗? 或者我可以只在Apache上部署时测试吗?

任何帮助将不胜感激。

ruby-on-rails ruby-on-rails-3.1
1个回答
5
投票

答案是在无路线匹配[GET] /资产

这说得通。 生产模式下的Rails默认情况下不提供静态资产,而是将其留给部署服务器。 您可以通过将config.serve_static_assets设置为true来配置rails以提供静态资产(尽管您可能会获得更好的性能,并将其保留为false)

© www.soinside.com 2019 - 2024. All rights reserved.