【问题标题】:Django not collecting static filesDjango不收集静态文件
【发布时间】: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 配置。

标签: python django web


【解决方案1】:

上面写着 109 未修改。文件已经存在。
试试ls /home/jumentosemuaresonline/apps_wsgi/website/static/
这应该会显示那里的所有文件。

以防万一。也试试这个。 rm -rf /home/jumentosemuaresonline/apps_wsgi/website/static/ mkdir /home/jumentosemuaresonline/apps_wsgi/website/static/ python manage.py collectstatic

这应该显示 109 复制和 0 修改。

【讨论】:

  • 我缺少 Nginx 配置
猜你喜欢
  • 1970-01-01
  • 2012-03-16
  • 1970-01-01
  • 1970-01-01
  • 2016-02-02
  • 2012-10-30
  • 2022-01-09
  • 2015-04-11
  • 1970-01-01
相关资源
最近更新 更多