通过URL访问django静态资源

这个问题真的困扰了好几天…这个跟django的版本号应该有关系,网上的方法大多都只适用于旧的django版本

截止发帖为止,我当前用的是django 2.1.2版本

首先给出解决方案:在urlpatterns里加入url(r'^static/(?P.*)$', views.serve),

下面是详细解释:

  1. 首先需要在url.py里引入django自带的views:from django.contrib.staticfiles import views(有可能你自己也写了一个views.py文件,所以最好重命名一下,比如from django.contrib.staticfiles import views as my_view

  2. urlpatterns里加入url(r'^static/(?P.*)$', my_view.serve),

         这里my_view就是上面提到的django自带的views,只不过我重命名为my_view而已

        根据django官方的说法,”static/”应该是你在settings.py里设置好的STATIC_URL设置,附官方文档截图:

通过URL访问django静态资源_第1张图片

“static/”后面的“(?P.*)”的含义其实很简单,就是你通过url访问时,staic/xxxx后面的这些路径,比如http:://localhost:8000/static/images/1.jpg,那images/1.jpg就是“(?P.*)”所代表的含义了

而后面的views.serve,是固定格式,直接用就行了,当然你要是想深究,可以去查看官方文档,同样附上链接:https://docs.djangoproject.com/en/2.1/ref/contrib/staticfiles/#django.contrib.staticfiles.views.serve

3. 这时候运行你的服务器,就能通过url正常访问静态资源了,比如你用Picasso,如果没配置好django服务器这边的URL的话,就算它功能再强大也访问不到资源啊(泪目~)

你可能感兴趣的:(django,django,url访问静态资源,django访问资源,serve,picasso)