在 Django 项目中,您将媒体文件夹放在哪里?
Where do you keep your media folder in a Django project?
我想知道 Django 开发人员将您的媒体文件夹放在哪里。我目前正在开发一个位于 ~/apps/django-project
的项目。我目前没有使用持续交付,但是当我必须更新项目时,我直接通过 ssh 进入远程机器并使用 git 拉取更新的文件(那是因为它位于项目文件夹中)。问题是媒体文件夹总是在更新,我必须使用 git 来跟踪它们,这不是我想做的事情。我想我也不想。git也忽略它们。
像这样构建项目是个好主意吗?
项目:~/apps/django-project
媒体:~/media
统计:~/static
如果这是个好主意,你能给我一些提示,告诉我如何设置我的 settings.py
MEDIA_ROOT 和 STATIC_ROOT
来完成这个吗?
如果这不是一个好主意,我想听听您如何构建项目以及我应该考虑哪些其他好的原则。 (另外,欢迎提供开发/生产技巧)
Django3 与 Python3.7
我在我的根目录中创建了一个文件夹 public
并在其中添加了媒体和静态目录
public/
media/
static/
我还将特定路径添加到 .gitignore,因此它们不会在环境之间发生冲突。
public/media
public/static
这种方法的好处是,如果你使用像 nginx 或 uwsgi 这样的网络服务器,你可以将文档根目录设置为 public
并默认提供任何静态文件并解析到 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
文件和其他一些我知道它们只需要简单服务的文件放在那里。对于 public
中不是静态文件的任何其他请求,它默认非常好并且非常快到 django
public/
media/
attachs/
users/
static/
admin/
css/
js/
robots.txt
humans.txt
manifest.json
favicon.ico
我什至曾经添加了对 .php 文件的支持,我只是将文件放在那里并将 .php 设置添加为 nginx 中的扩展规则。
我想知道 Django 开发人员将您的媒体文件夹放在哪里。我目前正在开发一个位于 ~/apps/django-project
的项目。我目前没有使用持续交付,但是当我必须更新项目时,我直接通过 ssh 进入远程机器并使用 git 拉取更新的文件(那是因为它位于项目文件夹中)。问题是媒体文件夹总是在更新,我必须使用 git 来跟踪它们,这不是我想做的事情。我想我也不想。git也忽略它们。
像这样构建项目是个好主意吗?
项目:~/apps/django-project
媒体:~/media
统计:~/static
如果这是个好主意,你能给我一些提示,告诉我如何设置我的 settings.py
MEDIA_ROOT 和 STATIC_ROOT
来完成这个吗?
如果这不是一个好主意,我想听听您如何构建项目以及我应该考虑哪些其他好的原则。 (另外,欢迎提供开发/生产技巧)
Django3 与 Python3.7
我在我的根目录中创建了一个文件夹 public
并在其中添加了媒体和静态目录
public/
media/
static/
我还将特定路径添加到 .gitignore,因此它们不会在环境之间发生冲突。
public/media
public/static
这种方法的好处是,如果你使用像 nginx 或 uwsgi 这样的网络服务器,你可以将文档根目录设置为 public
并默认提供任何静态文件并解析到 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
文件和其他一些我知道它们只需要简单服务的文件放在那里。对于 public
public/
media/
attachs/
users/
static/
admin/
css/
js/
robots.txt
humans.txt
manifest.json
favicon.ico
我什至曾经添加了对 .php 文件的支持,我只是将文件放在那里并将 .php 设置添加为 nginx 中的扩展规则。