目前在練習Vue,利用vue-cli腳手架開發了個vue2.0仿惟妮海購項目,在生產環境中一切良好,項目暫時告一段落,根據官方的
npm run build
打包後發現,在本身沒有線上服務器的狀況下,測試成爲一大難題(實踐發現,後面還有不少坑等着去填~~)。css
安利一個項目中遇到的大難題另闢蹊徑:vue單頁面,多路由,前進刷新,後退不刷新html
打包後的代碼必須放在服務器下才能運行哦!直接雙擊index.html是不行的。
下面介紹兩種搭建服務器的方式vue
開發項目,通常都會在本地搭建一個Apache服務器,各類Ahache服務器軟件琳琅滿目,本身挑選一個適合本身的便可,本人目前在使用xampp。搭建Apache服務器比較繁瑣,各類配置比較複雜,這裏再也不贅述,有不懂得,請善用google or baidu。node
http-server是一個基於node.js的簡單的,零配置的命令行http服務器git
既然是基於node的,首先必須安裝node.js,這個略過不談。
全局安裝 http-server,這樣就能夠在任意一個本地項目中使用了。npm install http-server -g
github
http-server [path] [options]
若是指定path,即爲指定的路徑,若是不指定,即爲當前所在文件路徑。options下面再介紹。
強烈建議直接在vue-cli打包後的dist文件夾下打開命令行,如圖所示,這樣就不用再指定文件路徑了
options選項說明
vue-router
-p 端口號
指定一個新的端口。若是你想同時開啓兩個項目,則兩個項目必須指定不一樣的端口號,不然有一個項目是打不開的。-o
,當服務器啓動後,將自動打開瀏覽器。-P 域名地址
便可.這個P是大寫的,上面端口那個p是小寫的。注意區分哦!http-server -p 8890 -o -P http://www.weinihaigou.com
若是你的接口在本地服務器,那就沒有跨域問題。若是你的接口在其它服務器,那就存在跨域問題。遇到跨域問題,最多見的控制檯報錯是No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8828' is therefore not allowed access.
,固然,也不排除其它報錯狀況。上面的http-server
能夠幫你解決跨域問題,但前提是你命令行寫正確,我把上面的跨域地址少寫了個www
,結果就報上面的錯誤。vue-cli
有時候打包運行時發現一片空白,這可能就是打包後的css/js的引入問題了。默認的引入方式如圖npm
是絕對路徑方式。咱們但願是相對路徑,能夠把config/index.js
中的assetsPublicPath: '/',
改成assetsPublicPath: './',
這樣再打包出來的就是相對路徑了。segmentfault
若是你的項目出現這個問題,那麼你的router
中必定是把mode
定義爲history
了。定義hash
模式則不會出這個問題。難道只能用很醜的hash
?固然不是,其實vue-router
官方文檔的HTML5 History 模式對此已有說明,這個就須要後端的小夥伴幫咱們設置一下了。
每一個人的項目不一樣,配置不一樣,環境不一樣...可能還會遇到各類各樣的問題,這裏不可能一一列舉,其實這些問題網上基本上都有解決方法,仍是那句話,請善用 google or baidu。
因篇幅緣由,請移步本文續篇vue-cli打包後的思索--代碼優化