两种方法,一种是常规的使用 {% static %} 的方法,这个不再赘述了,相信很多书里都是这么讲的;另一种方法是不使用{% static %}标记,而直接实现诸如在HTML文件中像 <link rel="stylesheet" href="css/default.css" />
或 <script src="scripts/thumbnails.js" type="text/javascript"></script>
标记的CSS或JavaScript路径寻址。
第二种方法,在对老代码的迁移比较有用,因为不需要需改原来老的前端脚本。其在Django2.1的解决方法是设置urlpatterns,具体为
假设my_dir是静态文件的根目录,其位于project/appname/my_dir的位置;my_dir下面可以放置css、scripts等子目录。只需设置项目的urls.py文件即可:
from django.contrib import admin
from django.conf.urls import url
from django.views.static import serve
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^(?P<path>.*)$', serve, {'document_root': 'appname/my_dir'}),
]
这样浏览器在访问 http://127.0.0.1:8000/css/default.css 时,就会寻找目标文件 project/appname/my_dir/css/default.css