【发布时间】:2012-01-26 21:11:29
【问题描述】:
我正在 Spree 0.70.3 和 Rails 3.1.3 上构建网站。在开发中,我只是在端口 3000 上运行得很薄;在生产中,我们有Passenger 3.0.9 和Nginx 1.0.8。
在 Spree 中将产品与分类单元相关联时,您会进入一个包含空分类单元列表的页面。开始在搜索框中输入内容会触发 AJAX 发布请求,以查找与该字符串匹配的分类单元并将它们显示为产品的潜在分类单元。
在开发中,这工作正常;我可以在开发日志中看到请求,并且分类单元出现在页面上。在生产中,Chrome 控制台显示 AJAX 请求正在获得 404 响应。 Nginx 日志只记录 404 响应; Rails 日志显示没有请求记录。我的猜测是 Nginx 看到请求有一个 .js 文件扩展名,并且正在寻找一个文件,可能在 public/ 目录中,而不是将请求发送到 Rails。
以前有人遇到过 Spree/Nginx 的这个问题吗?如何让 Nginx 记录更多关于它如何尝试解决请求的数据?有什么关于我应该在这里检查的 Nginx 配置的吗?
ETA:我已经增加了 Nginx 日志记录,看起来 Nginx 确实在寻找 .js 文件作为实际文件,而不是将请求交给Passenger和Rails。这个可以配置吗?
2012/01/27 14:33:17 [error] 4430#0: *2 open() "/var/www/live/current/public/admin/products/<product_slug>/taxons/available.js" failed (2: No such file or directory), client: 64.134.40.51, server: <obfuscated>.com, request: "POST /admin/products/<product_slug>/taxons/available.js HTTP/1.1", host: "<obfuscated>", referrer: "https://<obfuscated>/admin/products/<product_slug>/taxons/selected"
【问题讨论】:
标签: jquery ruby-on-rails-3.1 nginx passenger spree