0

我正在使用以下配置:

  • Ubuntu 12.04 桌面 i386
  • 红宝石 1.9.3p327
  • 导轨 3.2.9
  • 节点JS 0.8.14
  • Nginx + Phusion 乘客

我按照以下步骤操作:

  1. 创建一个新的 Ubuntu 虚拟机进行测试
  2. 安装 Ruby + Rails + NodeJS
  3. 从这里安装Passenger + Nginx
  4. 在/home/gerald/myapp中创建一个没有 ActiveRecord 的新 Rails 应用程序(丢弃数据库问题)
  5. 在开发模式下运行上述 Rails 应用程序(Rails 服务器)

它工作得很好,我什至可以看到 rails.png 图像。

问题是...

...当我将 Nginx 配置为运行上述应用程序时,rails.png图像中出现 404 错误。

这些是我添加到/opt/nginx/conf/nginx.conf文件的行:

http {
    ...
    server {
        listen 80;
        server_name www.mydomain.com;
        root /home/gerald/myapp/public;
        passenger_enabled on;
    }
    ...
}

Nginx error.log 只说:

2012/11/19 15:07:06 [error] 17398#0: *1 open() "/home/gerald/myapp/public/assets/rails.png" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /assets/rails.png HTTP/1.1", host: "127.0.0.1", referrer: "http://127.0.0.1/"

先感谢您。

4

1 回答 1

2

rails.png 文件是一个资产,它在资产管道中,你应该配置你的 nginx 虚拟主机。

它是这样的:

location ~* ^/assets/ {
# Per RFC2616 - 1 year maximum expiry
# http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
    expires 1y;
    add_header Cache-Control public;

# Some browsers still send conditional-GET requests if there's a
# Last-Modified header or an ETag header even if they haven't
# reached the expiry date sent in the Expires header.
    add_header Last-Modified "";
    add_header ETag "";
    break;
}

检查这个:链接

于 2012-11-21T23:30:02.183 回答