【问题标题】:Server unable to find public folder in rails 3 production environment服务器无法在 rails 3 生产环境中找到公用文件夹
【发布时间】:2011-02-16 16:46:02
【问题描述】:

我正在使用最新的 rails 3 beta。该应用程序在开发模式下运行良好,但是当我通过rails server -e production 在生产模式下启动服务器时,似乎找不到public 文件夹。我收到如下错误消息:

ActionController::RoutingError (No route matches "/javascripts/jquery.js"):

以及应该在public 文件夹中的所有内容的类似消息。 我用 mongrel 和 webrick 都试过了。如有任何帮助,我将不胜感激。

【问题讨论】:

    标签: ruby-on-rails production-environment ruby-on-rails-3


    【解决方案1】:

    nginx、unicorn 和 apache 会自动执行此操作。如果您使用这些服务器进行部署,请务必将其改回 false。

    【讨论】:

    • 使用unicorn_rails(内网环境)必须设置config.serve_static_assets = true
    【解决方案2】:

    编辑 config/environments/production.rb 并设置这一行:

    config.serve_static_assets = true

    【讨论】:

    • 这对我很有帮助。但是如果你将它设置为 false,HTTP 服务器(比如 Apache 之类的)会为这些文件提供服务吗? apache 怎么知道哪些 URLS 应该交给 ruby​​ 运行时,以及它可以提供哪些服务?我是一个roob noob
    • @Zasz 查看 nginx 配置 here。它会先判断文件是否存在,如果不存在,才将请求传递给rails。
    • 工作就像一个魅力,谢谢。但考虑在部署您的应用程序后将其更改为默认值。 serve_static_assets 将在 Rails 5 中删除。
    猜你喜欢
    • 2016-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多