python - Django静态文件和nginx

标签 python django nginx

当我通过 nginx 加载 example.org(不是实际 IP)的服务器时,内容显示正常。 但是,css和js等静态文件不会显示。需要什么 更改为显示静态文件?我只是在 nginx 上执行 python manage.py runserver 来检查是否正在馈送文件,但只显示模板而没有静态文件。

实际的静态文件夹(css/js/img)位于

/opt/myenv/myproject/myproject/static

我有/etc/nginx/sites-available/myproject 作为

server {
    listen 80;
    server_name example.org; ##not actual ip
    access_log /var/log/nginx/example.log;

    location /static/ { 
        alias /opt/myenv/static/; 
    }

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

这就是我的/opt/myenv/myproject/mysite/settings.py。

BASE_DIR = os.path.dirname(os.path.dirname(__file__))
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

最佳答案

在您的问题中,您声明您的静态资源文件位于 /opt/myenv/myproject/myproject/static 但您的 nginx 配置文件将它们放置在 /opt/myenv/static.

此外,您还可以使用 alias,其中 rootmore efficient 。尝试:

location /static {
    root /opt/myenv/myproject/myproject;
}

关于python - Django静态文件和nginx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34144459/

相关文章:

javascript - Let's encrypt auto renewal (Nginx) 错误

Python:排序函数在存在 nan 时中断

python - 我无法在 Django 模板上显示图像

php - 非 https 在 AWS EC2 Nginx 上下载 wp-header 文件,但 SSL 有效吗?

Django Wagtail CMS slugurl 和 pageurl 不工作 - 链接返回 'None'

python - 如何忽略 Sentry 的一些错误(不发送它们)?

authentication - 如何在 nginx 中设置自动身份验证层?

python - 获取具有多边形结构的列表的最小值

python - 在 Python 中重试连接之前暂停

python - 如何在 Amazon Web Services EC2 实例上安装 MySQL-python?