Я создаю папку public
в своем каталоге root и добавляю туда каталоги media и stati c
public/
media/
static/
Я также добавляю указанные c пути к .gitignore, поэтому они не конфликтуют между средами.
public/media
public/static
Преимущество этого подхода в том, что если вы используете веб-сервер, такой как nginx или uwsgi, вы можете установить для документа root значение public
и обработать любой файл stati c по умолчанию и разрешить django любой другой путь, который не является файлом в public
.
Например, в nginx я делаю что-то подобное.
server {
root /var/sites/myproject/public;
location @djangoapp {
proxy_redirect off;
proxy_pass http://localhost:8000;
}
location / {
try_files $uri @djangoapp;
}
}
Это очень удобно, потому что легко рассуждать о public
, все, что находится в этой папке, будет обслуживаться статически. Например, я положил туда свой файл robots.txt
и некоторые другие, которые, как я знаю, просто должны быть простыми. По умолчанию он работает очень быстро и быстро django для любого другого запроса, который не является файлом c в public
public/
media/
attachs/
users/
static/
admin/
css/
js/
robots.txt
humans.txt
manifest.json
favicon.ico
Я даже однажды добавил поддержку файлов. php, где я просто поместите туда файлы и добавьте установку. php в качестве правила расширения в nginx.