django - Nginx不提供静态服务

标签 django static nginx

我在Ubuntu Server 9.04上运行Django。

Django运作良好,但nginx不会传回静态文件-总是404。

这是配置:

server {
    listen 80;
    server_name localhost;

    #site_media - folder in uri for static files
    location /static  {
        root /home/user/www/oil/oil_database/static_files;
        autoindex on;
    }

    #location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|mov) {
    #   root /home/user/www/oil/oil_database/static_files;
    #   access_log off;
    #   expires 30d;
    #}

    location / {
        root html;
        index index.html index.htm;
        # host and port to fastcgi server
        #fastcgi_pass 127.0.0.1:8080;
        fastcgi_pass unix:/home/user/www/oil/oil_database/oil.sock;
        fastcgi_param PATH_INFO $fastcgi_script_name;
        fastcgi_param REQUEST_METHOD $request_method;
        fastcgi_param QUERY_STRING $query_string;
        fastcgi_param CONTENT_TYPE $content_type;
        fastcgi_param CONTENT_LENGTH $content_length;
        fastcgi_pass_header Authorization;
        fastcgi_intercept_errors off;
    }

    access_log /var/log/nginx/localhost.access_log;
    error_log /var/log/nginx/localhost.error_log;
}

Nginx版本是0.6.35。

所有目录均已存在并设置为777(调试妄想症)。当我取消注释时,注释掉的块没有帮助。

最佳答案

目录设置如何?您在static中有一个文件夹/home/user/www/oil/oil_database/static_files吗?在这种情况下,伪指令应如下所示(请注意/static/中的斜杠):

location /static/  {
    autoindex    on;
    root /home/user/www/oil/oil_database/static_files;
}

如果要将路径/home/user/www/oil/oil_database/static_files映射到URL /static/,则必须
  • 将文件夹static_files重命名为static并使用以下指令:
    location /static/  {
        autoindex    on;
        root /home/user/www/oil/oil_database/;
    }
    
  • 使用别名:
    location /static/  {
        autoindex    on;
        alias /home/user/www/oil/oil_database/static_files/;
    }
    

  • 请参阅有关 root alias 指令的文档。

    关于django - Nginx不提供静态服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1474374/

    相关文章:

    django - Django 中的自定义 HTTP header

    c# 单例模式与静态属性

    c++ - 如何在不加前缀 [类名]::的情况下在友元函数中使用静态成员:

    python - 编辑相关字段时,tastypie PUT 错误未经授权 401

    python - 反向未找到 Django

    python - 是否可以在管理员之外使用 django-modeltranslation?

    Javascript 不允许每次单击时更新静态变量

    nginx - Nginx 中 uwsgi_pass 和 proxy_pass 的区别?

    regex - nginx 重写以删除旧 URL 的日期路径

    node.js - X-Content-Encoding-Over-Network 位于响应 header 中,但不位于 Content-Encoding 中