【问题标题】:Django, serving static files with nGinx gives error 404Django,使用 nGinx 提供静态文件会出现错误 404
【发布时间】:2017-09-04 11:39:36
【问题描述】:

我无法通过 nGinx 提供静态文件,而是得到 404。我可以看到错误(显示在 error.log 中),但我不知道如何修复它。

urls.py

urlpatterns += patterns('', (
        r'^static/(?P<path>.*)$',
        'django.views.static.serve',
        {'document_root': 'static'}
))

settings.py

STATIC_ROOT =  os.path.join(PROJECT_DIR, "staticfiles/")
STATIC_URL = '/static/'

DEBUG=False

(做了一个 collectstatic,所有静态文件现在都在 'staticfiles/' 中)

nginx 配置

server { 
    listen 80; 
    server_name my_ip;  
    location = /favicon.ico { access_log off; log_not_found off; } 

    location /static/ {
        root /home/project/project/project/staticfiles;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/home/project/project/project.sock;
    }
}

base.html

{% load staticfiles %}
<link rel="stylesheet" href="{% static '/css/main.css' %}">

这是日志

error.log

2017/04/09 10:57:40 [error] 4719#4719: *182 open() "/home/project/project/project/staticfiles/static/images/home-lock.png" failed (2: No such file or directory)

(“静态/”添加在静态url中,我不明白为什么)

【问题讨论】:

  • 我只想说 /home/project/project/project 不是一个很好的目录名。
  • 我知道。第一个“项目”实际上是用户名。我服务器的每个非root用户的用户名都和项目一样。为什么?它很丑陋,但在同一屏幕上同时处理各种终端时不易出错。我相信你不需要解释其他两个。

标签: python django nginx django-staticfiles


【解决方案1】:

试试这个

location /static/ {
    alias /home/project/project/project/staticfiles;
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2015-03-13
  • 2015-11-30
  • 2018-10-12
  • 1970-01-01
  • 2021-05-27
  • 2015-02-28
  • 2015-11-20
  • 2019-08-21
相关资源
最近更新 更多