vue中高德地图资源引入index.html中,打包部署不了

vue中高德地图资源引入index.html中,打包部署不了,第1张

1、检查高德地图的引入方式:确保在Vue项目中正确引入了高德地图的资源文件

2、检查高德地图的API密钥:在引入高德地图资源之前,你需要获取高德地图的API密钥。确保在indexhtml文件中正确设置了高德地图的API密钥。

3、检查高德地图的版本:确保引入的高德地图库或SDK的版本与你的Vue项目兼容。

4、检查构建配置:在Vue项目中,你需要确保构建配置正确无误。检查Vue项目的构建配置文件(例如vueconfigjs),确保没有禁用或限制引入高德地图资源的配置。

5、检查网络连接:在打包和部署到生产环境之前,确保你的服务器具有正确的网络权限,以便可以访问到高德地图的资源文件。

在BOA服务器上部署Vue是可行的,只要服务器满足Vue应用程序的运行要求即可。

下面是一些在BOA服务器上部署Vue应用程序的基本步骤:

1 确保你的BOA服务器上已经安装了Nodejs和npm。你可以使用以下命令验证安装:

```bash

node --version

npm --version

```

如果它们没有显示版本号,则需要先安装Nodejs和npm。

2 在本地构建Vue应用程序。在命令行中进入你的Vue项目根目录,并运行以下命令:

```bash

npm run build

```

这将在项目的`dist`目录中生成用于生产环境的构建文件。

3 将构建文件上传到BOA服务器中。使用FTP或其他文件传输工具将构建文件复制到BOA服务器的合适目录中。

4 配置BOA服务器以正确地托管Vue应用程序。具体的配置方法可能因服务器和配置而异。一种常见的方法是配置BOA服务器的虚拟主机,并将网站的根目录指向Vue应用程序的构建文件所在的目录。

5 重启BOA服务器使配置生效。

6 测试访问Vue应用程序。在浏览器中输入你的服务器的域名或IP地址,应该能够访问到部署的Vue应用程序。

请注意,在部署Vue应用程序时,你还需要考虑服务器的安全性、域名配置、SSL证书等其他设置。确保你的服务器和应用程序的配置符合你的需求和最佳实践,并依据需要进行相应的调整。

写在前面:

如题,在项目中,经常有些函数和变量是需要复用,比如说网站服务器地址,从后台拿到的:用户的登录token,用户的地址信息等,这时候就需要设置一波全局变量和全局函数,这两个设置不太难,而且有一些共通之处,可能有一些朋友对此不太了解,所以随便写出来分享一波。有需要的朋友可以做一下参考,喜欢的可以点波赞,或者关注一下,希望可以帮到大家。

定义全局变量

原理:

设置一个专用的的全局变量模块文件,模块里面定义一些变量初始状态,用export default 暴露出去,在mainjs里面使用Vueprototype挂载到vue实例上面或者在其它地方需要使用时,引入该模块便可。

全局变量模块文件:

Globalvue文件:

<script>

const serverSrc='wwwbaiducom';

const token='12345678';

const hasEnter=false;

const userSite="中国钓鱼岛";

export default

{

userSite,//用户地址

token,//用户token身份

serverSrc,//服务器地址

hasEnter,//用户登录状态

}

</script>

使用方式1:

在需要的地方引用进全局变量模块文件,然后通过文件里面的变量名字获取全局变量参数值。

在text1vue组件中使用:

<template>

<div>{{ token }}</div>

</template>

<script>

import global_ from '//components/Global'//引用模块进来

export default {

name: 'text',

data () {

return {

token:global_token,//将全局变量赋值到data里面,也可以直接使用global_token

}

}

}

</script>

<style lang="scss" scoped>

</style>

使用方式2:

在程序入口的mainjs文件里面,将上面那个Globalvue文件挂载到Vueprototype。

import global_ from '/components/Global'//引用文件

VueprototypeGLOBAL = global_//挂载到Vue实例上面

接着在整个项目中不需要再通过引用Globalvue模块文件,直接通过this就可以直接访问Global文件里面定义的全局变量。

text2vue:

<template>

<div>{{ token }}</div>

</template>

<script>

export default {

name: 'text',

data () {

return {

token:thisGLOBALtoken,//直接通过this访问全局变量。

}

}

}

</script>

<style lang="scss" scoped>

</style>

Vuex也可以设置全局变量:

通过vuex来存放全局变量,这里东西比较多,也相对复杂一些,有兴趣的小伙伴们,可自行查阅资料,折腾一波、

定义全局函数

原理

新建一个模块文件,然后在mainjs里面通过Vueprototype将函数挂载到Vue实例上面,通过this函数名,来运行函数。

1 在mainjs里面直接写函数

简单的函数可以直接在mainjs里面直接写

VueprototypechangeData = function (){//changeData是函数名

alert('执行成功');

}

组件中调用:

thischangeData();//直接通过this运行函数

2 写一个模块文件,挂载到mainjs上面。

basejs文件,文件位置可以放在跟mainjs同一级,方便引用

exportsinstall = function (Vue, options) {

Vueprototypetext1 = function (){//全局函数1

alert('执行成功1');

};

Vueprototypetext2 = function (){//全局函数2

alert('执行成功2');

};

};

mainjs入口文件:

import base from '/base'//引用

Vueuse(base);//将全局函数当做插件来进行注册

组件里面调用:

thistext1();

thistext2();

后话

上面就是如何定义全局变量 全局函数的内容了,这里的全局变量全局函数可以不局限于vue项目,vue-cli是用了webpack做模块化,其他模块化开发,定义全局变量、函数的套路基本上是差不多。上文只是对全局变量,全局函数的希望看完本文能给大家一点帮助。

1、vite-plugin-vue-setup-extend

解决vue3下 script setup语法糖 下 ,手动设置组件name不方便的问题

npm i vite-plugin-vue-setup-extend -D

在文件viteconfigts中

importsetupExtendfrom'vite-plugin-vue-setup-extend';exportdefaultdefineConfig({plugins:[setupExtend()],});

2、unplugin-auto-import

实现vue函数的自动导入,这样如ref, computed,watch等就不用手动导入了

npm i unplugin-auto-import-D

在文件viteconfigts中

importAutoImportfrom'unplugin-auto-import/vite';exportdefaultdefineConfig({plugins:[AutoImport({imports:['vue','vue-router',{vuex:['useStore']}],resolvers:[],dts:false}),],});

当前无效与eslint冲突,如果直接使用依然会报错

这里采用了全局eslint还需安装 npm i eslint-plugin-auto-import  -D

顾最终配置如下

在viteconfigts文件中

exportdefault({mode})=>{returndefineConfig({plugins:[AutoImport({include:[/\[tj]sx$/,// ts, tsx, js, jsx/\vue$/,/\vue\vue/,// vue/\md$/// md],imports:['vue','vue-router',{vuex:['useStore']}],resolvers:[ElementPlusResolver()],dts:'/auto-importsdts',// eslint报错解决eslintrc:{// 此处为true运行后会生成eslintrc-auto-importjson  auto-importsdts文件enabled:true,// 此处第一次运行使用true,之后改为falsefilepath:'/eslintrc-auto-importjson',// Default `/eslintrc-auto-importjson`globalsPropValue:true// Default `true`, (true | false | 'readonly' | 'readable' | 'writable' | 'writeable')}}),Components({resolvers:[ElementPlusResolver()]}),],});};

在eslintrcjs文件中

extends:['/eslintrc-auto-importjson'],

在tsconfigjson文件中

compilerOptions: [        "types": ["element-plus/global"]  ],"include": [, "auto-importsdts"],

3、unplugin-vue-components

实现vue组件库的自动按需导入,这样就不用手动导入了

npm i unplugin-vue-components -D

在文件viteconfigts中

importAutoImportfrom'unplugin-auto-import/vite';importComponentsfrom'unplugin-vue-components/vite';import{ElementPlusResolver}from'unplugin-vue-components/resolvers';exportdefaultdefineConfig({plugins:[vue(),AutoImport({imports:['vue','vue-router',{vuex:['useStore']}],resolvers:[ElementPlusResolver()],dts:false}),Components({resolvers:[ElementPlusResolver()]}),]});

4、vite-plugin-compression

静态资源压缩

npm i vite-plugin-compression -D

在文件viteconfigts中

// 静态资源压缩importviteCompressionfrom'vite-plugin-compression';exportdefaultdefineConfig({plugins:[viteCompression({verbose:true,disable:false,// 不禁用压缩deleteOriginFile:false,// 压缩后是否删除原文件threshold:10240,// 压缩前最小文件大小algorithm:'gzip',// 压缩算法ext:'gz'// 文件类型})],});

5、rollup-plugin-visualizer

打包分析,可视化并分析构建包,查看哪些模块占用空间大小,以及模块的依赖关系

npm i rollup-plugin-visualizer -D

在文件viteconfigts中

importvisualizerfrom'rollup-plugin-visualizer';exportdefaultdefineConfig({plugins:[visualizer({// 打包后自动打开分析报告open:true})],});

链接:https://wwwjianshucom/p/d45ae4b5c11a

你的服务器是什么系统啊 ,,,linux LINUX、WINDOWS、NETWARE、UNIX。。

在linux

首先服务器安装node git   nginx  vue-cli

安装好nginx 用你的公网ip访问就可以看到 下面的页面

然后进入到下面的路径

vi default 你会看到nginx的默认配置

默认监听80端口 根路径

把你写好的vue项目 上传到github ,通过git clone 克隆到

服务器

路径下面

然后npm/yarn add/install 安装依赖 然后npm run build

vi 打开html 下面的 indexhtml 可以看到

nginx默认的html

进入sites-enabled 发现 它里面的 default 来自 sites-available的default

所以需要在 sites-available 新建一个文件 你的项目名命名就可以

在你新建的文件

我在site-available新建的文件是note-admin 映射到 sites-enables

注意路径一定要写全

最后重新加载下 nginx -s reload

打开浏览器 公网ip:端口号  或者 域名访问

这就可以了

还有 用express 部署这个 简单些

vue在服务端部署时,我们都知道通过npm run build 指令打包好的dist文件,通过http指定是可以直接浏览的,Thinkphp通过域名指向indexphp文件才可以浏览。要使前端正常调用后端数据,有两种方法:1、前端跨域调用后端数据,2、前端打包文件部署在后端的服务器文件夹下(同域)。

web服务器: apache

一、跨域

在服务器配置站点:

在路径/home/www/  下创建test项目文件夹,用来放项目文件。  

找到httpd-vhostsconf文件配置站点  

前端站点:  

    ServerName testtestcom  

    DocumentRoot "/home/www/test/dist"    

    DirectoryIndex indexhtml  

后端站点:  

    ServerName testtestphpcom  

    DocumentRoot "/home/www/test/php"    

    DirectoryIndex indexphp  

将前端打包好的dist文件放在/home/www/test/ 文件夹下,运行http://testtestcom可浏览,当路径改变时,刷新会出现404错误。此时dist文件下创建一个htaccess文件,当路径不存在时,路径指向http://testtestcom/indexhtml能解决此问题。

  RewriteEngine On  

  RewriteBase /  

  RewriteRule ^index\html$ - [L]  

  RewriteCond %{REQUEST_FILENAME} !-f  

  RewriteCond %{REQUEST_FILENAME} !-d  

  RewriteRule  /indexhtml [L]  

在/home/www/test文件夹下创建项目根目录php文件夹,将thinkphp文件放在php下。TP5的入口文件在public文件下,在这将public下的入口文件indexphp挪到php文件夹下(个人习惯将入口文件放在项目根目录), 后端绑定Index模块。

前端调用后端接口,存在跨域,跨域解决方法有好几种,在这我将在后端php做配置,解决跨域问题,在公用控制器设置跨域配置:

class Common extends Controller  

{  

    public $param;  

    // 设置跨域访问  

    public function _initialize()  

    {  

        parent::_initialize();  

        isset($_SERVER['HTTP_ORIGIN'])  header('Access-Control-Allow-Origin: '$_SERVER['HTTP_ORIGIN']) : '';  

        header('Access-Control-Allow-Credentials: true');  

        header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');  

        header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, authKey, sessionId");  

$param =  Request::instance()->param();  

$this->param = $param;  

    }  

}  

前端调用登录接口: thisaxiospost('http://testtestphpcom/indexphp/base/login', {user: '', password: ''})。

(可在webpackbaseconfjs文件下可定义接口:http://testtestphpcom/indexphp/)

二、同域

后端配置同上,公共配置器中的header配置注释。将前端的dist文件下的所有文件(包含htaccess),放在php文件夹下。将后端index控制器的index方法的路径重定向php下的indexhtml文件:

namespace app\index\controller;  

use think\Controller;  

class Index extends Controller  

{  

    public function index() {  

$this->redirect('/indexhtml');  

    }  

}  

前端调用登录接口: thisaxiospost('/indexphp/base/login', {user: '', password: ''})

转自:https://blogcsdnnet/qq_35465132/article/details/78986675

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » vue中高德地图资源引入index.html中,打包部署不了

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情