简单的笔记,django项目每次都需要配置媒体文件的路径,记录下来,防止忘记。(如果出现相关的其他配置,后续补上)
第一步:
在settin.py文件中,添加MEDIA_ROOT和MEDIA_URL,比如下面这样:
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
MEDIA_ROOT:
在官方文档中,MEDIA_ROOT是保存用户上传文件的目录的绝对文件系统路径。因为是绝对路径,所以使用os.path.join方法生产出MEDIA_ROOT。
MEDIA_URL:
同样,官方文档中给出了详细的介绍。处理由MEDIA_ROOT提供的媒体文件的URL,用于管理存储的文件。如果设置为非空值,它必须以斜杠结尾。
第二步:
在同一目录下的urls.py文件中添加url的配置。如下:
from LYShop.settings import MEDIA_ROOT
from django.views.static import serve
urlpatterns = [
url(r'^media/(?P<path>.*)', serve, {"document_root": MEDIA_ROOT})
]
这里使用了django.views.static中的serve方法,我在源码中查看该方法时,看到了如下的解释Serve static files below a given point in the directory structure.
To use, put a URL pattern such as::
from django.views.static import serve
url(r'^(?P<path>.*)$', serve, {'document_root': '/path/to/my/files/'})
意思是,在你提供的路径下面提供静态文件,使用方法就按照下面的例子,这里直接使用MEDIA_ROOT就是静态文件的路径。
Good