Python 运行Django collectstatic时如何忽略目录?

Python 运行Django collectstatic时如何忽略目录?,python,django,deployment,Python,Django,Deployment,我正在运行一个带有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 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的文档,其中有一个-I(--ignore)参数采用了glob样式的参数,因此我尝试了该命令的不同变体,因为我不确定ignore模式是指my/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 collectstatic的符号链接,我会注意到并再次跳过复制这些文件,但无论如何,我想让--ignore选项正常工作

我错过了什么


谢谢你的帮助

不要写入目录的完整路径。例如,用法:

python manage.py collectstatic --noinput -i admin
此命令不会将admin/目录复制到静态根路径。

最终解决了使用路径匹配指定忽略参数这一长期存在的问题

manage.py collectstatic --ignore /vendor/*.js

然后应该可以工作。

我也遇到了同样的问题,您是否取得了任何进展?假设我们必须忽略某一类型的文件,那么下面的工作python manage.py collectstatic--noinput-I*.styl,其中我要忽略的文件具有扩展名.styl?是的。示例:python manage.py collectstatic--noinput-i*.sassHow我会添加多个忽略吗?例如,忽略路径中带有
admin
的任何内容以及任何
*.scss
文件?
manage.py help collectstatic
说明:
-i PATTERN,--ignore=PATTERN忽略与此全局样式模式匹配的文件或目录。使用多次可以忽略更多内容。
因此@PhilGyford您可以使用类似于:
-i admin-i*.scss
我可以指定一个包含.gitignore或.gcloudignore等忽略内容的文件吗?否,您必须显式列出要忽略的文件——但是您可以创建一个脚本来转换,然后编写一些bash脚本来运行./manage.py和所有需要的忽略,这可能会更好。