【问题标题】:django+nginx deployment not loading static files correctlydjango+nginx 部署未正确加载静态文件
【发布时间】:2017-12-06 19:13:48
【问题描述】:
    server {
    listen 80;
    server_name 13.xx.xx.xxx;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/ubuntu/studykarma/django-react-redux-base/src/;
    }
    location / {
        include proxy_params;
        include  /etc/nginx/mime.types;
        proxy_pass http://unix:/home/ubuntu/studykarma/django-react-redux-base/src/djangoreactredux.sock;
    }
}

我的 nginx 配置文件

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static_root')
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static_dist'),
)

我的设置.py

我的静态文件在 static_dist 文件夹中,我的 reactjs 代码在静态中 文件夹。

我的静态文件没有加载并给我 404, 如果我将路径更改为 /static_dist/ 那么我也会得到空内容。

我正在使用这个模板:https://github.com/Seedstars/django-react-redux-base

【问题讨论】:

  • 我希望 location /static/ 与您的设置中的 STATIC_ROOT 相同。您是否运行collectstatic 将文件复制到静态根目录?

标签: python django reactjs nginx wsgi


【解决方案1】:

关于 Nginx 配置

location /static/ {
        root /home/ubuntu/studykarma/django-react-redux-base/src/;
 }

这个配置告诉Nginx,在通过example.com/static/app.js访问时,查看src文件夹root中的app.js文件,如果你想要static_dist,那么配置更改将是

location /static/{
   root /home/ubuntu/studykarma/django-react-redux-base/src/path/to/static_dist/;
}

关于 Django 配置

你的 Django 设置在逻辑上是错误的,

STATIC_ROOT = os.path.join(BASE_DIR, 'static_root')

上面的设置告诉django你希望你的所有静态文件从STATICFILES_DIRSSTATIC_ROOT,当你使用collectstaticdjango管理命令时,配置是有效的/被django使用,这实际上是从@987654330复制你的所有文件@ 到 STATIC_ROOT( 但这也意味着,您必须将 /static/ 位置 nginx 配置指向 static_root 而不是 static_dist

【讨论】:

  • 我跑了 collectstaticstatic_root 文件夹已创建,我将 location 块修改为 location /static/ { root /home/ubuntu/studykarma/django-react-redux-base/src/static_root/; } 但仍然得到 404
  • location /static_root/ { root /home/ubuntu/studykarma/django-react-redux-base/src/static_root/; } 这个对我有用
【解决方案2】:

使用这个,

location /static_root/ { root /home/ubuntu/studykarma/django-react-redux-base/src/static_r‌​oot/; }

会有用的

【讨论】:

    猜你喜欢
    • 2017-03-01
    • 1970-01-01
    • 2017-10-06
    • 2021-08-08
    • 2016-08-15
    • 2020-07-18
    • 1970-01-01
    • 2021-11-20
    • 2015-08-22
    相关资源
    最近更新 更多