之前从网上down了一套html的模板,自己想加载到Django中稍微修改引用,自己搞了好几天还是没有达到预期的效果,先是整理下已经完成的部分功能。
场景如下:下面为html和CSS/JS文件,我要html自动加载里面的CSS和JS
打开index.html,可以看到加载样式代码如下
<head>
<title></title>
<!-- Meta -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="Xiaoying Riley at 3rd Wave Media">
<link rel="shortcut icon" href="favicon.ico">
<!-- FontAwesome JS-->
<script defer src="assets/plugins/fontawesome/js/all.min.js"></script>
<!-- App CSS -->
<link id="theme-style" rel="stylesheet" href="assets/css/portal.css">
</head>
为了便于分类,我将html和CSS/JS文件分开存放,pycharm目录如下,新建了‘static_files’和‘themes’文件夹,分别用于存放样式文件和html文件。
好了接下来开始修改settings的配置,之前在网上找了一篇写的挺详细的http://www.kaotop.com/it/12803.html,我按照自己的需求改了下,但还有一些功能需要自己来摸索。
以下为urls.py的部分配置内容
from polls.views import index,orders,docs
urlpatterns = [
path('', index, name='index'),
path('index.html/', index, name='index'),
path('admin/', admin.site.urls),
]
以下为settings.py的部分配置内容
修改DIRS的配置内容,主要涉及到html文件的访问
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,'themes')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
修改static_url相关配置
'''STATIC_ROOT这里我没用到'''
STATIC_ROOT = os.path.join(BASE_DIR, 'static') STATIC_ROOT 是在部署的时候才发挥作用,执行 python managy.py collectstatic ,会在工程文件下生成(STATIC_ROOT )文件夹,把各个app下的静态文件收集到这个目录下.当然,需要配置Nginx.
'''STATIC_URL用于CSS的前缀,之前index.html中的<script defer src="assets/plugins/fontawesome/js/all.min.js"></script>,可以看到开头是assets的
所以这里要将static改成assets,这样的话我可以通过http://127.0.0.1:8000/assets/images/background/background-3.jpg访问本地的背景图片或样式,否则我必须通过
http://127.0.0.1:8000/static/images/background/background-3.jpg来访问'''
STATIC_URL = '/assets/'
'''STATICFILES_DIRS这里作为所有APP的公共样式, 'django.contrib.staticfiles'将STATICFILES_DIRS列表中的每一个路径转为可访问的'''
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static_files','assets')
]
配置完成后,我在访问http://127.0.0.1:8000/时发现一切正常,但是我点击上面的链接时发现问题来了。
遗留的问题mark一下,1.跳转页面时,每个样式URL前面加了本页面的前缀,2、12个html,总不能写12条path记录,views.py定义12个视图,汗,继续研究吧。