将VUE打包后网页布置在FLASK上

简介

由于在开发项目过程中前端用npm run serve 启动vue项目,后端flask,涉及了两个端口后,后期将vue项目打包后的文件让flask进行渲染。

vue.congifg.js文件的修改

参考网上相关的配置,下面三个路径是必须设置的,并依据flask的路径要求,进行文件名字的修改。

module.exports = {
      // 公共路径(必须有的)
      publicPath: "./",
      // // 输出文件目录 与 flask的 template 同名 可以直接替换
      outputDir: "templates",
      // // 静态资源存放的文件夹(相对于ouputDir)
      assetsDir: "static",//将js 和 css 相关的静态资源存放
      // eslint-loader 是否在保存的时候检查(果断不用,这玩意儿我都没装)
      // lintOnSave:false,
      // 我用的only,打包后小些
      // compiler: false,
     // productionSourceMap: true, // 不需要生产环境的设置false可以减小dist文件大小,加速构建
      // css相关配置(我暂时没用到)
      // css: {
      // 是否使用css分离插件 ExtractTextPlugin
      // extract: true,
      // 开启 CSS source maps?
      // sourceMap: false,
      // css预设器配置项
      // loaderOptions: {},
      // 启用 CSS modules for all css / pre-processor files.
      // modules: false
      // },
      // webpack-dev-server 相关配置
        
    //vue-pdf解决方法
    chainWebpack: (config) => {
        config.module
          .rule('worker')
          .test(/\.worker\.js$/)
          .use('worker-loader').loader('worker-loader')
          .options({
            inline: true,
            fallback: false
          }).end();
      },
    // webpack-dev-server 相关配置
    devServer: {
        //配置跨域
        proxy: {
            '/api': {
                target: 'http://127.0.0.1:5000',
                ws: true,
                changeOrigin: true,
                pathRewrite: {
                    '^/api': ''  //通过pathRewrite重写地址,将前缀/api转为/
                }
            }
        }
    },
}

需要注意的地方

  1. 打包好的index.html存放的路径要和Flask 渲染的路径。
  2. 静态资源static 文件要放在 python运行脚本的同级目录。
  3. Axios的配置跨域问题

会出现 python 脚本函数的404 错误
因为将vue打包好的网页放置在了flask服务器上,所以不存在跨域问题,但是要将前端路由指向的路径进行修改。

解决方法一:
不删除vue.config.js中的服务器的别名。

@app.route('/RequestForm',methods=["POST"])

改成

@app.route('/api/RequestForm',methods=["POST"]) // '/api'为vue.config.js中的服务器的别名
解决方法二:
删除vue.config.js中的devServer。
  1. 表单提交生成的PDF路径
    该问题解决的方法可能不止一种,目前采用的是其中一种。
    由于flask 所有的静态资源都在static 存放,所以后端通过reportlib生成的PDF文件也要存放在static下,并由前端读取前端vue-pdf读取。

  2. vue-pdf worker.js 文件丢失问题
    需要修改 vuePdfNoSss.vue 文件。

<style src="./annotationLayer.css"></style>
<script>
 
	import componentFactory from './componentFactory.js'
    // 修改部分:引入pdfjsworker
	import PdfjsWorker from 'pdfjs-dist/build/pdf.worker.js'
 
	if ( process.env.VUE_ENV !== 'server' ) {
 
		var pdfjsWrapper = require('./pdfjsWrapper.js').default;
		var PDFJS = require('pdfjs-dist/es5/build/pdf.js');
 
		if ( typeof window !== 'undefined' && 'Worker' in window && navigator.appVersion.indexOf('MSIE 10') === -1 ) {
            // 修改部分:注释原本的引入方法
			// var PdfjsWorker = require('worker-loader!pdfjs-dist/es5/build/pdf.worker.js');
			PDFJS.GlobalWorkerOptions.workerPort = new PdfjsWorker();
		}
 
		var component = componentFactory(pdfjsWrapper(PDFJS));
	} else {
 
		var component = componentFactory({});
	}
 
	export default component;
</script>

以及vue.config.js

chainWebpack: (config) => {
        config.module
          .rule('worker')
          .test(/\.worker\.js$/)
          .use('worker-loader').loader('worker-loader')
          .options({
            inline: true,
            fallback: false
          }).end();
      },

打包过程及部署录像下载链接:

参考

[1] vue中使用vue-pdf打包之后预览报错hash+worker.js路径不对404

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
文件"tistdtypes.h"是用于定义一些特定于平台的数据类型的。它是针对要在Flask使用Vue打包后的文件,你需要将Vue打包生成的静态文件(通常是一个 TI TMS320C6000 系列数字信号处理器 (DSP) 平台的头文件,主要用于编写或多个JavaScript和CSS文件)放置在Flask应用程序的静态文件,然后在Flask的 DSP 应用程序。 该头文件定义了一些与硬件平台相关的数据类型,例如整数类型和浮点模板引用这些静态文件。下面是一个简单的示例: 1. 首先,将Vue打包生成的静态文件放置在Flask应用程序的静态文件。假设你将Vue打包生成数类型。这些数据类型的定义与特定的 DSP 硬件架构相关,以确保代码在 DSP 平台上的文件放在Flask应用程序的`static`文件夹下的`dist`子文件。 2. 在Fl正确运行。 通过包含"tistdtypes.h"头文件,开发者可以使用这些特定于平台ask应用程序的模板,使用`url_for`函数来引用这些静态文件。例如,假设你的数据类型来声明变量、函数参数和返回类型。这有助于确保代码在 DSP 平台上的正确性想在模板引用打包后的JavaScript文件,可以这样写: ```html <!DOCTYPE html> <html> <head和可移植性。 总而言之,"tistdtypes.h"头文件的用途是为开发者提> <!-- 引用打包后的CSS文件 --> <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='dist/styles.css') }}"> </head> <body> <!-- 页面内容 --> <!-- 引用打包后的JavaScript供特定于 TI TMS320C6000 DSP 平台的数据类型定义,以便在 DSP 应用程序使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值