【问题标题】:Nginx 404 File not found error for django static filesdjango静态文件的Nginx 404 File not found错误
【发布时间】:2016-01-20 03:43:43
【问题描述】:

我在尝试访问静态文件时遇到错误,虽然我正在尝试访问 static/js/main.js 文件,nginx 正在寻找 static/js/main.js/index.html.. 下面是相同的错误。

2016/01/20 03:31:01 [错误] 2410#0: *1 “/home/ubuntu/vnv/near/near/static/js/main.js/index.html”不是 找到(20:不是目录),客户端:162.111.50.122,服务器:my.domain.com,请求:“GET /static/js/main.js/ HTTP/1.1”,主机:“my.domain.com”

下面是我的服务器块..

server {
    listen 80;
    server_name my.domain.com;

    # location ~ ^/(static/.*) {
    location ~ /static {
        root /home/ubuntu/vnv/near/near; # near consist of static directory
    }

    location ~ / {
        proxy_headers_hash_max_size 51200;
        proxy_headers_hash_bucket_size 6400;
        proxy_pass http://near_server;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

它还在 URI 末尾附加 /,这可能是什么问题?

注意:我已经完成了与此相关的大多数答案,但我找不到适合这种情况的解决方案。

【问题讨论】:

  • 如果您包含您的 html 代码或您尝试访问该文件的任何位置会更好
  • @AlexJolig 我只是想直接从客户端访问静态文件,但这里的问题是如果我启用autoindex 那么它只会让我获得static 目录。对于静态目录中的剩余文件,它给了我404。顺便说一句,这些静态文件是我的 django 项目的一部分
  • 当然/home/ubuntu/vnv/near/near/static/js/main.js 存在?

标签: nginx django-staticfiles


【解决方案1】:

如果请求 URI 以 / 结尾,nginx 会将其视为目录并应用索引规则。除非被覆盖,否则nginx 会查找index.html 文件。

从错误消息中,我们看到 GET 请求是针对/static/js/main.js/。所以问题是 / 附加到请求 URI 上?

如果您现在查看访问日志,您将看到包含GET /static/js/main.js/ HTTP/1.1 404 的行,其中列出了 HTTP 响应代码。

如果上面的行包含GET /static/js/main.js HTTP/1.1 3xx,那么nginx 添加了额外的/。如果没有这样的行,那么客户端请求的 URL 错误,您需要在其他地方寻找问题的解决方案。

与您的问题无关:为什么在 前缀 location 块似乎更合适时使用 正则表达式 location 块?

您可能应该使用:

location /static { ... }
location / { ... }

您现有的配置效率低下,并且匹配带有嵌入在字符串中任意位置的/static 的URI,例如:/something/static.php

location 语法和处理规则见this document

【讨论】:

    猜你喜欢
    • 2014-06-07
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    • 2018-05-24
    • 1970-01-01
    • 2021-01-12
    相关资源
    最近更新 更多