Ale*_*ido 31 python deployment django
我正在使用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
Run Code Online (Sandbox Code Playgroud)
它正确地复制了我安装的所有应用程序中的静态文件.不幸的是,这也复制了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*
Run Code Online (Sandbox Code Playgroud)
我发现如果我从/ home/user/static/admin创建一个符号链接到/home/user/.virtualenvs/django13/lib/python2.7/site-packages/django/contrib/admin/media collectstatic会注意到跳过再次复制这些文件,但无论如何,我想让--ignore选项正常工作.
我错过了什么?
谢谢您的帮助!
小智 34
不要写完目录的完整路径.例如用法:
python manage.py collectstatic --noinput -i admin
Run Code Online (Sandbox Code Playgroud)
此命令不会将admin /目录复制到STATIC_ROOT路径.
Mar*_*ian 11
例如,Django 2.2 版本终于解决了使用路径匹配指定忽略参数的长期存在的问题
manage.py collectstatic --ignore /vendor/*.js
Run Code Online (Sandbox Code Playgroud)
然后应该工作。