這篇文章主要介紹如何在服務端跑vuejs的項目,如果上一篇教程你成功輸出了hello world,那這一篇更簡單
首先你要有一個已經能在本地跑的基于vuejs的項目,我就以之前寫的仿餓了么的項目為例來部署,如果你還沒有已經寫好的項目,可以用我的這個項目來學習,https://github.com/wmui/vue-elm
這次部署就用最古老最省心的方法,ftp來上傳項目
項目打包
npm run build
后會有一個dist目錄,這個文件夾就是我們要部署上線的項目
寫一個小腳本
如果你會點nodejs,腳本就很好理解了,下面是app.js啟動腳本的內容
const fs = require('fs');const path = require('path');const express = require('express');const app = express();// 模擬數(shù)據,api服務var appData = require('./data.json');var seller = appData.seller;var goods = appData.goods;var ratings = appData.ratings;// api接口var apiRoutes = express.Router(); apiRoutes.get('/seller', function(req, res) { res.json({ erron: 0, data: seller }) }); apiRoutes.get('/goods', function(req, res) { res.json({ erron: 0, data: goods }) }); apiRoutes.get('/ratings', function(req, res) { res.json({ erron: 0, data: ratings }) }); app.use('/api', apiRoutes); app.use(express.static(path.resolve(__dirname, './dist'))) app.get('*', function(req, res) { const html = fs.readFileSync(path.resolve(__dirname, './dist/index.html'), 'utf-8') res.send(html) }) app.listen(8082);
簡單解釋一下上面的代碼,由于項目需要些數(shù)據,我的模擬數(shù)據都在data.json這個文件里,所有簡單的寫了三個路由,對應獲取到模擬數(shù)據。然后把dist目錄靜態(tài)出來,讀取dist目錄下的index.html(因為是單頁應用,只有這一個html文件),監(jiān)聽8082端口
我們先在本地把要上傳的文件都準備好:
我們的這個腳本使用了express框架,所以我們可以生成一個package.json,把依賴項添加進去
{ "name": "vue-elm-dist", "version": "1.0.0", "description": "", "main": "app.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "express": "^4.15.3" } }
完成以上操作,我們要上傳的文件項目大概長這樣
新建一個文件夾如elm,把整個項目通過ftp上傳到根目錄www文件夾下
啟動服務
登陸到你的服務端,cd到elm文件夾,執(zhí)行npm install 安裝依賴,然后pm2 start app.js就成功啟動服務了
現(xiàn)在通過ip加端口形式能正常訪問,但是如果想通過域名訪問就需要配置nginx映射
nginx 端口映射配置
首先你需要把一個二級域名解析到你的主機ip,比如我使用的elm.86886.wang這個二級域名
配置文件和之前的基本一致
upstream elm { server 127.0.0.1:8082; }server { listen 80; server_name elm.86886.wang; location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Nginx-proxy true; proxy_pass http://elm; proxy_redirect off; } }
我把它命名為elm-8082.conf
然后通過ftp上傳到/etc/nginx/conf.d/
目錄下
執(zhí)行sudo nginx -s reload重啟nginx服務器,過個十分鐘就應該能正常訪問了 點擊訪問
http://www.cnblogs.com/yesyes/p/7168449.html