【问题标题】:How is the serving of public assets different in development and production modes of a rails application?在 Rails 应用程序的开发和生产模式中,服务公共资产有何不同?
【发布时间】:2018-06-18 10:15:42
【问题描述】:

我在开发和生产中运行相同的 rails 5.1.5 应用程序。一切都在开发环境中按预期工作。在生产中,我最初无法提供公用文件夹中的静态资产。我在 production.rb 中设置了 config.public_file_server.enabled = true。但是,由于我页面上的每个请求都在授权之后(作为应用程序控制器中的 :before_action),因此设置授权 cookie 的 .js 文件也不会在未经授权的情况下提供,并且我的服务陷入循环。这在开发模式中不会发生,并且公共资产不会通过铁路路线请求。我需要有关在 Rails 应用程序的开发和生产模式中服务公共资产有何不同的指导。

【问题讨论】:

标签: ruby-on-rails


【解决方案1】:

我相信这可能是由于您的生产配置存在问题。对于生产环境中的一个示例,您不会让 Rails 进程提供静态资源。您应该将静态资产设置为由 Web 服务器提供服务。您只需将以下配置添加到您的 Apache 或 Nginx 虚拟文件中即可。

DocumentRoot /home/xxx/test/public

root /var/www/phindee/current/public;

【讨论】:

  • 在开发和生产中,我都让 Rails 为静态资源提供服务,因为 Puma 没有提供静态文件服务(据我所知)。为什么在开发中绕过了路由,而在生产中却没有?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-24
  • 1970-01-01
  • 2012-01-23
相关资源
最近更新 更多