我正在用Django 1.3,Ubuntu 11.10,gunicorn和Nginx运行一个小的测试项目,所有的东西都在一个虚拟环境中,现在我正在运行collectstatic来将我的静态文件放到Nginx所在的目录中。
为简单起见,假设我的静态目录类似于/home/user/static,而我的项目位于/home/user/project
当我转到/home/user/project时,我运行:
python manage.py collectstatic --noinput它可以正确地从我安装的所有应用程序中复制静态文件。不幸的是,这也复制了Django管理员的文件,我想跳过这一步。
我查看了文档中的集合体,有一个忽略( -i )参数,它接受一个glob风格的参数,所以我尝试了命令的不同变体,因为我不确定忽略模式是指我的/home/user/static还是原始的应用程序目录。
下面是一些不起作用的例子:
python manage.py collectstatic --noinput -i /home/user/static/admin
python manage.py collectstatic --noinput -i /home/user/static/admin/*
python manage.py collectstatic --noinput -i /home/user/static/a*
python manage.py collectstatic --noinput -i /home/alexis/.virtualenvs/django13/*
python manage.py collectstatic --noinput -i /home/user/.virtualenvs/django13/lib/python2.7/site-packages/django/contrib/admin*我发现如果我创建一个从/home/user/static/admin到/home/user/.virtualenvs/django13/lib/python2.7/site-packages/django/contrib/admin/media的符号链接,静态会注意到并跳过再次复制这些文件,但无论如何,我想让--ignore选项正常工作。
我遗漏了什么?
谢谢你的帮助!
发布于 2011-12-09 14:22:35
不要写目录的完整路径。例如用法:
python manage.py collectstatic --noinput -i admin此命令不会将admin/目录复制到STATIC_ROOT路径。
发布于 2019-01-11 04:26:53
发布于 2021-11-17 00:46:18
我有一个这样的文件夹结构:
my_project
└─content
| └─static
| └─content
| ├─css
| ├─dist
| ├─js
| ├─scss我想排除scss文件夹和其中的所有文件。
我在下面记录了我尝试过的所有事情。
以下是不支持的命令:
"python manage.py collectstatic --no-input --ignore /content/static/content/scss"
"python manage.py collectstatic --no-input --ignore /content/static/content/scss/"
"python manage.py collectstatic --no-input --ignore /content/static/content/scss/*"
"python manage.py collectstatic --no-input --ignore content/static/content/scss"
"python manage.py collectstatic --no-input --ignore content/static/content/scss/"
"python manage.py collectstatic --no-input --ignore content/static/content/scss/*"
"python manage.py collectstatic --no-input --ignore /content/scss"
"python manage.py collectstatic --no-input --ignore /content/scss/"
"python manage.py collectstatic --no-input --ignore /content/scss/*"
"python manage.py collectstatic --no-input --ignore content/scss"
"python manage.py collectstatic --no-input --ignore content/scss/"以下是执行工作的命令:
"python manage.py collectstatic --no-input --ignore content/scss/*" <- best
"python manage.py collectstatic --no-input --ignore content/scss*"理解这一点的绝对关键是阅读这篇文章十遍:
您需要从静态目录中查找路径,而不是项目根目录。
总结如下:
https://stackoverflow.com/questions/8269883
复制相似问题