Mar*_*jus 15 python django nginx django-deployment
这是我的设置:
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
STATIC_ROOT = '/home/django-projects/tshirtnation/staticfiles'
Run Code Online (Sandbox Code Playgroud)
这是我的nginx配置:
server {
server_name 77.241.197.95;
access_log off;
location /static/ {
alias /home/django-projects/tshirtnation/staticfiles/;
}
location / {
proxy_pass http://127.0.0.1:8001;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
}
}
Run Code Online (Sandbox Code Playgroud)
我跑了python manage.py collectstatic,它已经复制了所有静态文件.我使用gunicorn_django --bind:my-ip:8001运行我的服务器,除静态文件外,一切似乎都在工作.
编辑:我跑了
sudo tail /var/log/nginx/error.log
Run Code Online (Sandbox Code Playgroud)
似乎没有找到静态文件的错误:/
pzt*_*ick 21
我遇到了同样的问题,并能够通过/从/static/位置删除尾随来修复我的nginx配置.
location /static { # "/static" NOT "/static/"
# ...
}
Run Code Online (Sandbox Code Playgroud)
尝试将^~前缀修饰符添加到您的静态位置以跳过检查正则表达式:
location ^~ /static/ {
alias /home/django-projects/tshirtnation/staticfiles/;
}
Run Code Online (Sandbox Code Playgroud)
我认为浏览器会尝试在以下位置找到您的静态信息:
http://127.0.0.1:8001/static/
Run Code Online (Sandbox Code Playgroud)
而nginx默认工作在80端口。
您需要在 nginx 配置中定义 8001 端口或在 80 端口上运行 django 服务器。
| 归档时间: |
|
| 查看次数: |
13769 次 |
| 最近记录: |