我在Ubuntu上部署了Nginx + Gunicorn + Django
服务器。它使用Debug=False
设置运行,一切正常CSS
加载良好,JS
也可以工作。但是,当我尝试更新css
文件或js
文件时,我所做的更改不会在运行服务器时反映出来。
我试图更新一个旧的静态文件,也是在collectstatic
命令之后创建的静态文件,我还尝试了清理collectstatic
以及systemctl restart nginx (and gunicorn)
。我还清理了浏览器中的缓存。但当我查看页面源代码时,这些更改并不存在
这就是我的nginx config
的样子
server {
listen 80;
server_name mediadbin.n-media.co.jp;
client_max_body_size 500M;
access_log /home/mediaroot/mediadbin/logs/nginx-access.log;
error_log /home/mediaroot/mediadbin/logs/nginx-error.log;
server_tokens off;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
}
location /static { $ I TRIED APPLY CHANGES HERE <- NOTHING happens
alias /home/mediaroot/mediadbin/mediadbin/static;
}
location /media {
alias /home/mediaroot/mediadbin/mediadbin/media;
}
include global404;
}
这是我的gunicorn
配置
#!/bin/bash
# Name of the application
NAME="mediadbin"
# Django project directory
DJANGODIR=/home/mediaroot/mediadbin/mediadbin
# how many worker processes should Gunicorn spawn
NUM_WORKERS= $(( $(nproc) * 2 + 1 ))
# which settings file should Django use
DJANGO_SETTINGS_MODULE=mediadbin.settings
# WSGI module name
DJANGO_WSGI_MODULE=mediadbin.wsgi
echo "Starting $NAME as `whoami`"
# Activate the virtual environment
cd $DJANGODIR
ENV=new_django
source /root/.virtualenvs/new_django/bin/activate
# Start your Django Unicorn
# Programs meant to be run under supervisor should not daemonize themselves (do not use --daemon)
exec gunicorn ${DJANGO_WSGI_MODULE}:application \
--timeout 600
--name $NAME \
--workers &NUM_WORKERS \
--bind=127.0.0.1 \
--log-level=debug \
--log-file=-
>>> sudo find / -name menu_detail_look.js
/home/mediaroot/mediadbin/mediadbin/static/main_app/js/menu_detail_look.js
/home/mediaroot/mediadbin/mediadbin/main_app/static/main_app/js/menu_detail_look.js
↑ 都更新了,什么也没发生(js中也没有错误)
首先,如果您设置了静态位置nginx,那么静态文件肯定会通过nginx加载
使您像静态块一样(而不是使用别名根):
还要确保将静态根设置为:
/home/mediaroot/mediadbin/mediadbin/static/
运行collectstatic会将所有静态文件复制到静态根文件夹中,nginx将为其提供服务
相关问题 更多 >
编程相关推荐