【发布时间】:2013-09-16 16:36:49
【问题描述】:
我正在尝试将 rails4 (ruby-2.0.0) 应用程序部署到我的服务器。我几乎所有的资产都是预编译的,并由 nginx 提供服务。
一个 js.erb,通过从我的数据库中获取模型来生成动态 html 列表。此资产无法预编译,因为它必须保持动态。
我从asset.precompile中排除了这个资产,并打开了
config.assets.compile = true
为这一资产回退到资产管道。
在我的本地生产环境中,一切正常,但在我的服务器(nginx、unicorn)上,资产管道回退将无法正常工作。我收到一个简单的 404 错误
nginx错误日志:
2013/09/13 08:54:54 [error] 27442#0: *58 open() "/XXX/current/public/assets/rails_admin/rails_admin_switchable-051203ae1d7aca2c08092e5c92bcdf15.js" failed (2: No such file or directory), client: XXX, server: , request: "GET /assets/rails_admin/rails_admin_switchable-051203ae1d7aca2c08092e5c92bcdf15.js HTTP/1.1", host: "XXX", referrer: "http://XXX/admin"
unicorn 和 rails 不会显示任何错误。
任何想法,我该如何解决这个问题?
最好, 弗朗茨
【问题讨论】:
-
能否发布您收到的任何错误消息?
-
我添加了错误日志
-
你确定请求甚至到达了 Rails 吗?在我看来 nginx 正在尝试提供静态资产但没有找到它。
标签: ruby-on-rails nginx asset-pipeline unicorn