zoukankan      html  css  js  c++  java
  • vue HTML5 History 模式 node服务器端的配置

    1.  新建server-proxy.js文件(dev和pro公用的proxy转发文件)

    var proxy = {
      local:"http://localhost:9999",//mock环境
    }
    var config = {
      dev: {
          historyApiFallback: true,
          stats: { colors: true },
          hot: true,
          inline: true,
          progress: true,
          disableHostCheck:true,
          //contentBase:"./app/index",
          proxy: {
              '/api/mock': {
                target: proxy.local, //pathRewrite: {'^/column' : '/column'},                
                  secure: false,
                  changeOrigin: true
              }
          }
      },
      portPro: '10086' 
    
    }
    module.exports = config;

    2.  新建 server-after-package.js ,打包后在当前目录就可以启动history模式,并做了proxy的转发。

    console.time('start server-after-package need time')
    const http = require('http')
    const fs = require('fs')
    var proxyhttp = require('express-http-proxy')
    var express = require('express')
    var app = express()
    var proxy = require('./server-proxy')
    app.set('roots', __dirname+'/dist')
    app.use('/', express.static(app.get('roots')))
    app.engine('html', require('ejs').renderFile)
    for (var i in proxy.dev.proxy) {
        if (proxy.dev.proxy.hasOwnProperty(i)) {
            console.log(i, proxy.dev.proxy[i].target)
            app.use(i + '/*', proxyhttp(proxy.dev.proxy[i].target, {
                proxyReqPathResolver: function (req, res) {
                    console.log(req.originalUrl)
                    return req.originalUrl
                }
            }))
        }
    }
    app.use('*', function (req, res, next) {
      fs.readFile(app.get('roots')+'/index.html', 'utf-8', (err, content) => {
        if (err) {
          console.log('We cannot open "index.htm" file.')
        }
        res.writeHead(200, {
          'Content-Type': 'text/html; charset=utf-8'
        })
        res.end(content)
      })
    });
    var server = app.listen(proxy.portPro, function () {
        var host = server.address().address
        var port = server.address().port
        console.log('app listening at ' + require("os").hostname() + ' http://localhost:' + port)
        console.timeEnd('start server-after-package need time')
    })

     问题:

    报错:“Uncaught SyntaxError: Unexpected token <” 时,首先查看路径设置是否正确(主要时script指向的src是否正确,是否能访问)

  • 相关阅读:
    一款垃圾的仿资源管理器+局域网Ping网段的工具(winform+异步线程) 留了问题
    ruby实现按键精灵的功能
    委托与事件 在.net的争霸战 ,你选择了谁?(异步委托产生的原因)
    小记C语言指针p与*p
    奔波的这 3月份
    ruby实现删除自定义后缀名文件Find
    "new" 出一个新未来——关于new的揭秘
    学了一招半式策略模式(设计模式)
    配置类的定义与使用
    js编写
  • 原文地址:https://www.cnblogs.com/wtaog/p/9183702.html
Copyright © 2011-2022 走看看