nginx不为django提供静态文件,在其他文件夹中搜索

jhkqcmku  于 7个月前  发布在  Nginx
关注(0)|答案(1)|浏览(106)

我正在使用Nginx将我的Django项目部署到服务器,Gunicorn静态文件没有加载。
2023/11/07 05:17:42 [错误] 68970#68970:*40 open()“/home/pau/perp2.0/perp/staticfiles/static/admin/js/core.js”失败(2:没有这样的文件或目录)
Nginx正在/home/pau/perp2.0/perp/staticfiles/static/中搜索文件,但静态文件的目录只是/home/pau/perp2.0/perp/staticfiles,没有最后一个静态文件
我的nginx文件配置如下

server {
    listen 80;
    server_name my_ip;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/pau/perp2.0/perp/staticfiles;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }
}

字符串
以防万一我的settings.py对于静态文件部分是这样的:

`# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.10/howto/static-files/

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

DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

# Extra places for collectstatic to find static files.
STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, '../static'),
)

# Simplified static file serving.
# https://warehouse.python.org/project/whitenoise/
STATICFILES_STORAGE = "whitenoise.storage.CompressedStaticFilesStorage"
)`


我只是一个服务的静态文件在正确的目录,谢谢。如果你能解释,解决方案,将是伟大的。

js4nwp54

js4nwp541#

root意味着 location 位于定义的 root 路径下,这就是为什么它被视为子文件夹。如果/static/不是子文件夹,那么您应该使用alias而不是root

location /static/ {
    alias /home/pau/perp2.0/perp/staticfiles/;
}

字符串

相关问题