您好,登錄后才能下訂單哦!
0. Nginx使用
以windows版為例,下載niginx壓縮包并解壓到任意目錄,雙擊nginx.exe,在瀏覽器中訪問http://localhost,如果出現Welcome to nginx!頁面則說明成功。
nginx常用命令如下:
nginx -h # 打開幫助 nginx -t # 檢查配置文件是否正確 # 以下命令均要先啟動nginx才能執行 nginx -s stop # 停止 nginx -s quit # 退出 nginx -s reopen # 重新啟動(注意不會重新讀取配置文件) nginx -s reload # 重新讀取配置文件
1. 部署項目到Nginx根目錄
對于vue-cli創建的項目,修改vue.config.js文件(位于項目根目錄下,沒有的話自行創建):
module.exports = { // 開發環境中使用的端口 devServer: { port: 8001 }, // 取消生成map文件(map文件可以準確的輸出是哪一行哪一列有錯) productionSourceMap: false, // 開發環境和部署環境的路徑 publicPath: process.env.NODE_ENV === 'production' ? '/' : '/my/', configureWebpack: (config) => { // 增加 iview-loader config.module.rules[0].use.push({ loader: 'iview-loader', options: { prefix: false } }) // 在命令行使用 vue inspect > o.js 可以檢查修改后的webpack配置文件 } }
在vue項目根目錄中使用命令npm run build創建輸出文件,將dist文件夾下的所有內容復制到nginx目錄下的webapp/內(沒有的話自行創建)。
修改nginx目錄中的conf/nginx.conf文件,在 http -> server 節點中,修改location節的內容:
location / { root webapp; index index.html index.htm; }
在nginx根目錄使用命令nginx -s reload即可在瀏覽器中通過http://localhost訪問項目。
2. 多個項目部署到Nginx
有時一個Nginx中放了好幾個子項目,需要將不同的項目通過不同的路徑來訪問。
對于項目1而言,修改vue.config.js文件的publicPath:
publicPath: '/vue1/'
對于項目2而言,修改vue.config.js文件的publicPath:
publicPath: '/vue2/'
分別在vue項目根目錄中使用命令npm run build創建輸出文件,將dist文件夾下的所有內容復制到nginx目錄下的webapp/vue1和webapp/vue2內(沒有的話自行創建)。
修改nginx目錄中的conf/nginx.conf文件,在 http -> server 節點中,修改location節的內容:
location /vue1 { root webapp; index index.html index.htm; } location /vue2 { root webapp; index index.html index.htm; }
在nginx根目錄使用命令nginx -s reload即可在瀏覽器中通過http://localhost/vue1、http://localhost/vue2訪問項目1、項目2。
3. 端口代理
當前后端項目分別部署在同一臺機器上時,由于無法使用相同的端口,故后端一般會將端口號設置成不同的值(例如8080),但是當前端向后端請求資源時還要加上端口號,未免顯得麻煩,故利用可以nginx將前端的指定路徑代理到后端的8080端口上。
在conf/nginx.conf文件中增加location:
location /api { proxy_pass http://localhost:8080/api; }
這樣,當前端訪問/api路徑時,實際上訪問的是http://localhost:8080/api路徑。
總結
以上所述是小編給大家介紹的Vue-cli項目部署到Nginx服務器的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。