最近写一个项目,前端使用vue-cli3开发的,然后后端使用django1.11+python2.7.10开发的。本来前后端写的好好地,然后要求把vue放在django内部,直接配置django的域名就可以访问。经过一番折腾,写一下最终如何处理的。
django访问页面的目录是static文件夹,vue打包后在一个dist目录中。那么将打包后的vue放在static目录中那不就可以访问了。查了查文档,说干就干。
确认 django.contrib.staticfiles 在 INSTALLED_APPS 中
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles', # 确保这个在
]
在 settings 文件中定义 STATIC_URL
# 静态文件url
STATIC_URL = '/static/'
# 静态文件目录
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static/dist"),
]
这个时候我们还需要在urls的配置中启用静态服务
在urls.py中设置
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + staticfiles_urlpatterns()
- 这个时候我们开始启动 python manage.py runserver 127.0.0.1:8080,项目启动,我们直接前端打开,127.0.0.1:8080/static/index.html 就能够正常访问到对应的页面了