zoukankan      html  css  js  c++  java
  • vue前端项目测试环境部署 & nginx配置

     [ 测试环境服务器目录 ]

    (温馨提示:配置1,配置2均在 vue.config.js 文件中修改)

     

    1. 配置 publicPath

    默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上,

    例如:https://www.histomed.com。

    如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径,

    例如:如果你的应用被部署在 https://www.histomed.com/admin/,则设置 baseUrl 为 /admin/。

     

     (此处做了环境的区分,其实这里可以直接写为publicPath:'/pcp/')

    运行命令 npm run build ,打包后生成 dist 目录:

    此时可以看到,在每一个被引入的文件的路径前面多了 /pcp/ 

     而这个 /pcp/ 就是我们刚刚在 vue.config.js 文件中配置的 publicPath 属性,否则找不能正确找到测试环境服务器下的pcp路径。

    2. 配置 devServer (开发环境转发解决跨域)

    在 VUE CLI3 的根目录下创建 .env.development 文件或 .env.production 文件后,
    可以在全局通过 process.env 找到对应文件下相应的属性值(如: NODE_ENV , BASE_API等):

     

    【关于proxyTable的原理】
    同源策略 是浏览器需要遵循的标准,而如果是服务器向服务器请求就无需遵循同源策略

    vue-cli3 的 proxyTable 用的是 http-proxy-middleware 中间件,该中间件本质上是在本地开了一个服务器 devServer,所有的请求都通过这里转发出去,即把浏览器的发送请求代理转发到代理服务器上,再由代理服务器发送请求给目标服务器,从而解决跨域问题。

    在build打包之后,就相当于静态文件,已经跟node没有关系了 。

     假如不配置 devServer, 访问的是8080端口,发生了跨域,就找不到后台接口:

     配置 devServer 后:

     3. 配置 nginx(生产环境转发解决跨域)

    server {
    	listen       80;
    	server_name  localhost;
    
    	location /pcp {
    		root /alidata/www/test.hengdaomed.com;
    		try_files $uri $uri/ /pcp/index.html;
    		index  index.html index.htm;
    	}
    
    	location /pcp-be {
    		 proxy_set_header Host $http_host;
    		 proxy_set_header X-Real-IP $remote_addr;
    		 proxy_set_header REMOTE-HOST $remote_addr;
    		 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    		 proxy_pass http://localhost:10999/pcp;
    	}
    
    	error_page   500 502 503 504  /50x.html;
    	location = /50x.html {
    		root   html;
    	}
    }

     nginx 配置完成后运行命令  nginx -s reload  重启 nginx。

    【关于 nginx 路径配置】

    [ vue.config.js ]:

    'use strict'
    const path = require('path')
    const defaultSettings = require('./src/settings.js')
    
    function resolve(dir) {
      return path.join(__dirname, dir)
    }
    
    const name = defaultSettings.title || '远程会诊管理系统' // 标题
    
    const port = process.env.port || process.env.npm_config_port || 80 // 端口
    
    // vue.config.js 配置说明
    //官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions
    // 这里只列一部分,具体配置参考文档
    module.exports = {
      // 部署生产环境和开发环境下的URL。
      // 默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上
      // 例如 https://www.histomed.com。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.histomed.com/admin/,则设置 baseUrl 为 /admin/。
      publicPath: process.env.NODE_ENV === "production" ? "/pcp/" : "/pcp/",
      // 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist)
      outputDir: 'dist',
      // 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
      assetsDir: 'static',
      // 是否开启eslint保存检测,有效值:ture | false | 'error'
      lintOnSave: process.env.NODE_ENV === 'development',
      // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。
      productionSourceMap: false,
      // webpack-dev-server 相关配置
      devServer: {
        host: '0.0.0.0',
        port: port,
        proxy: {
          '/dev-api' : {
            target: `http://localhost:10999/pcp`,
            changeOrigin: true,
            pathRewrite: {
              '^/dev-api': ''
            }
          }
        },
        disableHostCheck: true
      },
      configureWebpack: {
        name: name,
        resolve: {
          alias: {
            '@': resolve('src')
          }
        }
      }
    }

      

  • 相关阅读:
    Eclipse工作间的基本配置。
    多态的 好处和弊端。
    线程转换状态。
    成员内部类如何访问。
    实现runnable接口启动线程相比继承Thread类启动线程的优点。
    Java中的命名规范。
    内部类的访问特点。
    那天无意间又看到一篇关于心流的文章
    科技爱好者周刊139
    形势与政策 期末考试
  • 原文地址:https://www.cnblogs.com/edwardwzw/p/13215070.html
Copyright © 2011-2022 走看看