对于常用的css、js、image和常用的工具类在django项目中要设置一个全局的路径,对所有的app都可以访问到这个路径下的文件
- 1在django项目的setting文件中设置对应的static和media路径
# 设置全局的共享静态文件
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
# 配置好了之后用户上传的文件都会上传到这个文件下,和static文件一样都是一个全局访问的
MEDIA_ROOT = os.path.join(BASE_DIR,'media')
- 2.上传文件到项目中都有在media文件下新建目录,比如下面的例子,定义的一个model中头像的保存字段,上传文件时自动在media文件下新建avatar文件夹,头像都会保存在avatar文件下
# 用户头像(有疑问),这么写,上传的文件会自动保存到某个位置(upload_to指定的位置),然后把路径放到该字段中,
avatar = models.FileField(upload_to='avatar/', default='avatar/default.png')
- 3.对media文件的使用,在项目urls文件中配置对应的路由,
# 导入media
from django.views.static import serve
from DjangoDay02 import settings
urlpatterns = [
url(r'^admin/', admin.site.urls),
# 开启media的访问路径,使用有名分组适配路径
url(r'^media/(?P<path>.*)',serve,{"document_root":settings.MEDIA_ROOT}),
]
- 4.在对应的模板文件中拼接对应的字符串就可以访问对应的文件了
<a href="#"><img src="/media/{{ request.user.avatar }}"></a>