Vuejs介紹
官網一句話介紹了此框架: 漸進式JavaScript 框
生產環(huán)境部署
公司最近一個項目使用了Vuejs框架交播,作為公司運維肯定會有部署涡相,之前一直使用nodejs框架,可以通過 node柄错、forever舷夺、pm2來進行管理苦酱,而前端開發(fā)的同事將項目源代碼給我時懵圈了售貌,完全不認識的一個東西,趕緊和開發(fā)小哥確認疫萤,這是什么東西颂跨、這個怎么運行、這個怎么部署到生產環(huán)境扯饶?
下面是開發(fā)小哥的指導
cd project_dir
npm install
npm run dev
我:哇恒削,三條命令解決戰(zhàn)斗池颈,不對,這個我怎么在測試環(huán)境和生產環(huán)境部署钓丰,這種方式肯定不對躯砰。
開發(fā)小哥也被我問懵了。携丁。琢歇。。
開發(fā)小哥:不知道啊梦鉴。李茫。我開發(fā)的時候就是這樣啟動的。肥橙。魄宏。
各種。存筏。懵宠互。。方篮。名秀。。上網查了下vuejs是什么鬼藕溅,然后一頓百度搜索“vuejs 生產環(huán)境部署”匕得,在知乎發(fā)現大神的回復,以下是神回復的正確操作:
npm run dev
是用來在本地開發(fā)的時候做調試用的巾表,vue開發(fā)的是前端的東西汁掠,不是nodejs 服務端程序,按道理講集币,生產環(huán)境里就不該存在npm考阱,甚至nodejs也不需要(用nodejs來做web靜態(tài)服務的除外),樓主通過ssh進入到服務器里鞠苟,再運行npm run dev
來啟動哪是開發(fā)機上做的事情乞榨。
正確的做法很簡單,通過npm run build
把生成的dist文件夾(不要上傳文件夾)里的內容上傳到http服務器上就可以通過 http來訪問了当娱,開發(fā)機上正常吃既,上傳以后 程序出現錯誤不能運行的原因99.99%的可能性是你引用資源的路徑有問題。
點這兒查看大神回復跨细,來源:知乎
看到這兒趕緊用下面的命令構建下鹦倚,發(fā)現真的生成dist目錄了。
npm install
npm run build
把生成的dist目錄冀惭,復制到nginx中去震叙,首頁無法顯示掀鹅,通過瀏覽器調試窗口看了下,static資源不能訪問媒楼,看了下瀏覽器開發(fā)人員工具窗口中的url是localhost/static/js/xxxxxx.js乐尊,這個明顯不正確,我是直接將dist復制到nginx網站目錄html中在瀏覽器中使用localhost/dist可以訪問index.html那就是說開發(fā)小哥們在開發(fā)中直接將static寫死到網站根目錄了划址,剛好回復這篇知乎的大神科吭,寫了這個問題。自己動手將開發(fā)小哥的build配置修改了猴鲫。
一般如果vue框架的程序上傳到網站服務器的根目錄下是不 會有問題的对人,也不存在資源文件引用錯誤的情況,但如果你不是根目錄拂共,就會有問題牺弄,通過vue-cli 生成的開發(fā)目錄,build以后默認引用資源文件的路徑是
比如 app.js的引用方式
<script type="text/javascript" src="/static/js/app.js"></script>
所以宜狐,如果你的目錄結構是 如下
www/
+hot/
+static/
+index.html
當你通過http://www.xxx.com/hot/index.html**來訪問的時候 會出現找不到app.js势告,因為index.html里引用的app.js路徑是http://www.xxx.com/static/js/app.js
但是app.js的實際路徑是
http://www.xxx.com/hot/static/js/app.js 所以出現了404
要解決的方法很簡單把引用方式 改成如下兩種方式 都可以
<script type="text/javascript" src="./static/js/app.js"></script>
或者
<script type="text/javascript" src="/hot/static/js/app.js"></script>
推薦這樣的方式,可以保正在vue-router生成的url下也不出現問題
都可以抚恒,當然這也不需要手動去改咱台,
在webpack的配置文件(config/index.js)中修改
assetsPublicPath: './'
或者
assetsPublicPath: '/hot/'
這樣,我們就基本解決了有服務器子目下運行的問題俭驮,