Vue專案打包到django部署
前言
Vue專案一般用於實現前端的單頁面富應用,其打包後的檔案可簡單看作靜態檔案,所以可以通過Nginx部署,當然也可以通過django部署(畢竟本質上還是一個html檔案及各CSS,JS檔案的集合)。通過django部署還可以省去一些跨域的麻煩,不過前後端的耦合性就比完全分開部署的差一點。
測試所使用框架版本 django 3.06,VueCli 3.0
Vue打包
修改vue.config.js(VueCli3.0新建的專案裡沒有,要在專案目錄新建一份)
修改為
module.exports = {
assetsDir: 'static',// 靜態資源打包輸出目錄 (js, css, img, fonts),相應的url路徑也會改變
};
然後npm run build,打包出來的dist結構如下
那麼問題來了,為什麼要修改assetsDir呢,如不修改,結構如下
一看這兩個區別好像只是把簡單地將靜態檔案輸出在一個static檔案而已,那麼我們是否可以不修改,自己新建一個static檔案然後手動將靜態檔案放進去呢。有些教程也是這樣教的,著實坑了我一把。其實assetsDir屬性和打包後的靜態檔案請求路徑有關的。
我們看看修改與不修改assetsDir,它們靜態檔案請求路徑是咋樣的
沒修改的
修改後的
他們的路徑就差了個static,如果你用nginx部署啥的可能不會出問題,但如果你用整合至django部署的話問題就大了,就算django的settings配置好了,也會找不到靜態檔案的。
django配置
dist檔案複製到專案目錄下(與app同級)
settings配置如下
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),# 專案預設會有的路徑,如果你部署的不僅是前端打包的靜態檔案,專案目錄static檔案下還有其他檔案,最好不要刪
os.path.join(BASE_DIR, "dist/static"),# 加上這條
]
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates'),
os.path.join(BASE_DIR,'dist')] # 加上這條,其餘的是預設配置
,
'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_ROOT
STATIC_ROOT 是在部署靜態檔案時(pyhtonmanage.pycollectstatic)所有的靜態文靜聚合的目錄,STATIC_ROOT要寫成絕對地址,在這裡,比如我的專案mysite是/home/mysite/
那麼STATIC_ROOT 為 /home/mysite/collect_static/
當部署專案時,在終端輸入:
python manage.py collectstatic1
django會把所有的static檔案都複製到STATIC_ROOT資料夾下
STATIC_ROOT,STATIC_URL,STATICFILES_DIRS,這三個配置詳細說明可參考
https://blog.csdn.net/alxandral_brother/article/details/52202270
使用
配置url,編寫view就不贅述了,和平常的流程一致。
如有紕漏,歡迎斧正
參考目錄
https://www.cnblogs.com/semishigure/p/10219408.html
https://blog.csdn.net/alxandral_brother/article/details/52202270
相關文章
- docker 部署 django + mysql + vue 專案DockerDjangoMySqlVue
- SpringBoot專案如何打包部署到tomcat中去Spring BootTomcat
- django專案部署到centos,踩的坑DjangoCentOS
- electron打包vue專案Vue
- 部署vue專案到Linux伺服器VueLinux伺服器
- 5.Django專案部署Django
- Linux 下部署Django專案LinuxDjango
- 把django專案部署到阿里雲伺服器流程Django阿里伺服器
- Nginx部署Vue前端專案,部署多個Vue專案NginxVue前端
- 【django輕量級框架】django專案部署到阿里雲伺服器流程Django框架阿里伺服器
- vue cli 3.x 專案部署到 github pagesVueGithub
- [部署02] Docker 部署vue專案DockerVue
- 如何打包部署一個tomcat專案Tomcat
- nginx部署vue專案NginxVue
- Docker 部署 vue 專案DockerVue
- 如何把本地的Django專案部署到伺服器(親測)Django伺服器
- 使用 uWSGI 和 Nginx 部署 Django 專案NginxDjango
- 使用nginx+uwsgi部署Django專案NginxDjango
- 專案部署到LinuxLinux
- vue 專案打包成apk(Hbuilder方案)VueAPKUI
- Vue專案如何分環境打包Vue
- 【前端打包部署】談一談我在SPA專案打包=>部署的處理前端
- 使用 Docker 部署 vue 專案DockerVue
- 阿里雲伺服器部署django專案阿里伺服器Django
- Ubuntu Apache下部署Django2專案UbuntuApacheDjango
- Centos7系統部署django專案CentOSDjango
- 阿里雲部署Django專案(nginx+uWSGI)阿里DjangoNginx
- 【前端打包部署】談一談我在SPA專案打包=>部署的處理(上)前端
- vue專案部署到阿里雲伺服器(windows - Nginx代理)Vue阿里伺服器WindowsNginx
- vue專案部署到阿里雲伺服器(windows),Nginx代理!Vue阿里伺服器WindowsNginx
- Vue SPA 專案webpack打包優化指南VueWeb優化
- vue專案打包:npm run build 程式卡死VueNPMUI
- Vue專案打包常見問題整理Vue
- Vue專案優化打包——前端加分項Vue優化前端
- React專案模板-從專案搭建到部署React
- 阿里雲部署Django專案(nginx+uWSGI)-2018.11阿里DjangoNginx
- 伺服器(Aliyun)部署Django專案(Ubunto版)伺服器Django
- 寶塔皮膚成功部署Django專案流程Django