heroku - 刷新页面时,Vue + Webpack 应用程序部署在 heroku 上不起作用

标签 heroku vuejs2 vue-router

我使用带有 webpack 模板的 vue-cli 生成了一个 vue 应用程序,并使用 this guide 将其部署到 heroku .我能够毫无问题地运行它,但是当我刷新页面,或者我直接访问子路由时,它失败了。

server.js

var express = require('express')
var path = require('path')
var serveStatic = require('serve-static')
app = express()
app.use(serveStatic(__dirname))
var port = process.env.PORT || 5000
app.listen(port)
console.log('server started '+ port)

router.js

我的 vue 路由配置

export default new Router({ mode: 'history', routes })

最佳答案

水疗中心通常有一个 index.html 并且到应用程序中其他路线的导航由 javascript 本身处理。导致刷新或直接访问子路由失败。

由于您使用 mode: 'history' 在 vuejs 路由器配置中配置了 history 模式,因此您可以考虑使用 connect-history-api-fallback如所述here: Example server configurations .

  1. npm install --save connect-history-api-fallback
  2. 将这个中间件添加到您的 express

    var history = require('connect-history-api-fallback');
    
    var express = require('express')
    var path = require('path')
    var serveStatic = require('serve-static')
    app = express()
    //add this middleware
    app.use(history());    
    app.use(serveStatic(__dirname))
    var port = process.env.PORT || 5000
    app.listen(port)
    console.log('server started '+ port) 
    

关于heroku - 刷新页面时,Vue + Webpack 应用程序部署在 heroku 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44982580/

相关文章:

vue.js - 我的整个 Vue 应用程序在页面重新加载时创建了两次,为什么会发生这种情况?

javascript - 是否可以跨多个 DIV 拆分 ag-Grid?

javascript - 如何在 Vue 中的每个路由上重新初始化一个包?

typescript - 从 typescript vue 组件类中访问路由器参数

python - Flask Heroku 应用程序无法连接到 Redis 队列

node.js - 将 Meteor 和 MongoDB 部署到 Heroku

node.js - heroku git 存储库的 URL 是什么?

django - 使用 django 开发和部署 Vuejs 应用程序

node.js - 如何使用 vue-cli(webpack) 创建多页面应用程序(每个页面都有不同的路由器,以及不同的 dist/index.html)

grails - 收到错误WAR打包错误:grails war启动失败