我正在使用Django 1.3,Ubuntu 11.10,gunicorn和Nginx运行一个小型测试项目,所有内容都在virtualenv中,现在我正在运行collectstatic来将我的静态文件放到Nginx所服务的目录中。
为简单起见,假设我的静态目录类似于/ home / user / static,我的项目位于/ home / user / project
当我去/ home / user / project时,我跑:
python manage.py collectstatic --noinput
它正确地从我安装的所有应用程序中复制静态文件。不幸的是,这也复制了Django管理员的文件,我想跳过那个。
我检查了collecstatic的文档,并且有一个带有glob样式参数的-i(--ignore)参数,所以我尝试了不同的命令变体,因为我不确定忽略模式是否指的是我的/ home / user / static或原始app目录。
这里有一些不起作用的例子:
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 collectstatic会注意到并跳过再次复制这些文件,但无论如何,我想让--ignore选项正常工作。
我错过了什么?
感谢您的帮助!
答案 0 :(得分:34)
不要写目录的完整路径。例如用法:
python manage.py collectstatic --noinput -i admin
此命令不会将admin /目录复制到STATIC_ROOT路径。
答案 1 :(得分:2)