在所有的Models、Templates和Views都编好的情况下,怎么在Templates中设置正确的CSS、JS、image等静态文件的路径成了一个问题。绝对路径肯定不行,相对路径在模板继承时会出现无法找到这些文件的问题,有没有一种好的办法来解决?肯定是有的。
假设你所有的静态文件都在根目录下的static文件夹中,目录结构如下:
static
├───css
├───image
└───js
打开你的settings.py文件,添加下面这条语句:
STATICFILES_DIRS = (os.path.join(os.path.dirname(__file__), '../static/').replace('\','/'), )
意思是让服务器去setting.py文件的上一层目录的static文件夹下查找静态文件。
然后在你的app的urls.py文件中添加如下语句:
from django.conf import settings
在urlpatterns中添加:( r'^static/(?P<path>.*)$', 'django.views.static.serve',{ 'document_root': settings.STATIC_ROOT }),
使用时在模板中直接引入静态文件即可,如:
<link rel = "stylesheet" type = "text/css" href = "/static/css/base.css">