【发布时间】:2014-01-25 23:26:46
【问题描述】:
我正在尝试在 django 生产主机上收集静态文件 网站:jumentosemuaresonline.com.br
我的配置:
DEBUG = False
ALLOWED_HOSTS = [".jumentosemuaresonline.com.br"]
STATIC_ROOT = os.path.join(BASE_DIR,'static/')
STATIC_URL = os.path.join(BASE_DIR,'/static/')
当我在设置中打印静态根目录时,返回 ftp 的确切路径
/home/jumentosemuaresonline/apps_wsgi/website/static/
当我执行python manage.py collectstatic -v 0
它还返回 ftp 的确切路径
/home/jumentosemuaresonline/apps_wsgi/website/static/
但是当我执行python mange.py collectstatic 时,它不会用静态文件填充静态文件夹,只会返回
0 个静态文件已复制,109 个未修改。
有人知道我错过了什么吗?
我知道发生了什么: collect static 命令工作正常,但我在应用程序前面使用 Nginx 作为反向代理,Nginx 必须提供静态路径而不是 django。
upstream django_app {
server djangohost:8000;
}
server {
listen 80;
location / {
proxy_pass http://django_app;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
location /static/ {
alias /my/static_path/;
}
}
【问题讨论】:
-
命令运行正常,你确定你在看正确的路径吗?如果没有修改,则不会复制文件。
-
文件夹 /home/jumentosemuaresonline/apps_wsgi/website/static/ 为空
-
STATICFILES_DIRS 的值是多少?此外,似乎 STATIC_ROOT 和 STATIC_URL 指向同一个位置。
-
我没有使用 STATICFILES_DIRS,所有的静态文件都在我的应用程序静态文件文件夹下,并且正在我的机器上以 debug true 模式工作。
-
我缺少用于提供静态文件的 nginx 配置。