简介
Vue
项目,使用脚手架vue-cli
搭建。打包后会在dist
目录下生成静态文件。
直接用浏览器打开一般是不行的,页面显示空白
那么想在本地预览怎么办?
hash 模式
默认的css
、js
和图片等静态资源是通过绝对地址引入的。类似于/static/js/...
这种形式
本地预览
可以将静态资源的引入路径由绝对地址修改为相对地址。
修改方法见:Vue项目常见问题-部署资源路径问题
搭建本地服务器
- 在根目录下新建文件
server.js
。使用express
搭建本地服务器
// server.js
const express = require("express")
const app = express()
app.use(express.static('./dist'))
app.listen(8081, () => {
console.log('Listening at http://localhost:8081')
})
- 或者使用
koa2
搭建本地服务器
// server.js
const Koa = require('koa')
const app = new Koa()
const path = require('path')
const koaStatic = require('koa-static')
// 配置静态web服务的中间件
app.use(koaStatic(
path.join(__dirname, './dist')
))
app.listen(8081, function() {
console.log('app started at port 8081...');
})
- 修改
package.json
文件的scripts
部分
"server": "node ./server.js"
- 执行命令
npm run server
,然后在浏览器中访问http://localhost:8081
就能看到项目页面了
history 模式
该模式下不能直接使用浏览器访问
需要搭建本地服务器,方法见hash
模式中的搭建本地服务器
按上面启动本地服务器后,用浏览器访问项目页面,在首页外的其他页面刷新时会出现404。
express
服务器需要使用中间件connect-history-api-fallback
将其重定向到index.html
koa2
服务器需要使用中间件koa2-connect-history-api-fallback
将其重定向到index.html
express
服务器修改后的server.js
文件
const express = require("express")
const app = express()
let history = require('connect-history-api-fallback')
//重定向到index.html
history({
rewrites: [{
from: /^\/libs\/.*$/,
to: '/index.html'
}]
});
app.use(history());
app.use(express.static('./dist'))
app.listen(8081, () => {
console.log('Listening at http://localhost:8081')
})
koa2
服务器修改后的server.js
文件
const Koa = require('koa')
const app = new Koa()
const path = require('path')
const koaStatic = require('koa-static')
const { historyApiFallback } = require('koa2-connect-history-api-fallback')
// 注意historyApiFallback的位置
app.use(historyApiFallback({ whiteList: ['/api']}))
// 配置静态web服务的中间件
app.use(koaStatic(
path.join(__dirname, './dist')
))
app.listen(8081, function() {
console.log('app started at port 8081...');
})
发表评论