最近写一个项目,前端使用vue-cli3开发的,然后后端使用django1.11+python2.7.10开发的。本来前后端写的好好地,然后要求把vue放在django内部,直接配置django的域名就可以访问。经过一番折腾,写一下最终如何处理的。

    django访问页面的目录是static文件夹,vue打包后在一个dist目录中。那么将打包后的vue放在static目录中那不就可以访问了。查了查文档,说干就干。
    image.png

    1. 确认 django.contrib.staticfiles 在 INSTALLED_APPS 中

      1. INSTALLED_APPS = [
      2. 'django.contrib.admin',
      3. 'django.contrib.auth',
      4. 'django.contrib.contenttypes',
      5. 'django.contrib.sessions',
      6. 'django.contrib.messages',
      7. 'django.contrib.staticfiles', # 确保这个在
      8. ]
    2. 在 settings 文件中定义 STATIC_URL

      1. # 静态文件url
      2. STATIC_URL = '/static/'
      3. # 静态文件目录
      4. STATICFILES_DIRS = [
      5. os.path.join(BASE_DIR, "static/dist"),
      6. ]
    3. 这个时候我们还需要在urls的配置中启用静态服务

    在urls.py中设置

    1. from django.contrib.staticfiles.urls import staticfiles_urlpatterns
    2. urlpatterns = [
    3. # ... the rest of your URLconf goes here ...
    4. ] + staticfiles_urlpatterns()
    1. 这个时候我们开始启动 python manage.py runserver 127.0.0.1:8080,项目启动,我们直接前端打开,127.0.0.1:8080/static/index.html 就能够正常访问到对应的页面了