vite创建vue3项目页面引用public下js文件失败解决

目录

问题出现

情景描述:

原因查询:

为什么不能这样导入?

最终目标:

问题解决(全局引用)


问题出现

情景描述:

在将html页面转到vite构建的vue3项目页面时内容和样式已经正确引入,(引入前将html页面的静态资源全部放到了public静态资源下)但是js文件在vue页面引入时报各种错,解决这个出现那个

原因查询:

基于此情况我阅读了vite官方文档发现:public 中的资源不应该被 JavaScript 文件引用也就是说在vue3页面的script中不能使用import导入public下的静态js文件

为什么不能这样导入?

因为你在 Vue 3 的 <script setup> 区块中使用了导入的 JavaScript 库,但是这些库可能不是以模块化方式编写的,无法直接与 Vue 组件进行交互。

在 Vue 3 中,<script setup> 区块将组件逻辑放在单个区块中,自动推断变量和组件选项,并且默认开启了类似于模块化的模式。然而,一些旧的 JavaScript 库可能不符合这种模块化规范,无法直接与 Vue 组件配合使用。

解决这个问题的方法之一是将这些不兼容的 JavaScript 库作为全局变量引入,而不是在 <script setup> 中使用 import 导入。可以在 index.html 中使用 <script> 标签手动引入这些库,从而使它们成为全局可用的变量。

最终目标:

在页面中使用 public 文件夹下的 JavaScript 文件

问题解决(全局引用)

index.html 入口文件中通过 <script> 标签手动引入静态 JS 文件。这样,该文件将被全局引用,可以在整个应用程序中访问它

html 复制代码
<!DOCTYPE html>
<html>
<head>
  <!-- head 部分代码 -->
</head>
<body>
  <!-- body 部分代码 -->

  <!-- 引入其他资源 -->

  <!-- 手动引入的 JavaScript 库 -->
  <script src="/path/to/jquery.min.js"></script>
  <script src="/path/to/bootstrap.bundle.min.js"></script>
  <script src="/path/to/lightbox.min.js"></script>
</body>
</html>
  1. 注意:确保使用正确的路径来引入这些库文件,路径应该是相对于你的项目根目录来指定的。

  2. 保存文件并重新启动开发服务器。现在,这些 JavaScript 库将在应用程序加载时被引入,并可在整个 Vue 3 应用程序中使用。

相关推荐
LEE14 分钟前
前端转型全栈 00:AI 时代该学哪些,不该学哪些
前端·后端
晚安日记wanna25 分钟前
SSR 为什么不适合登录态从水合冲突到缓存串号
前端·react.js·面试
aixingpan28 分钟前
aixingpan.cn API开发文档:api_docs_bichart_natalvssolararc2接口指南
前端·php
无限压榨切图仔32 分钟前
一个优惠券需求改了三端,我才明白全栈不是多学一门语言
前端·后端
晚安日记wanna36 分钟前
批量请求失败只弹一个 Toast面试官想听五层
前端·面试·架构
晚安日记wanna43 分钟前
TS const 类型参数一道面试题的四层追问
前端·面试·typescript
用户921080262861 小时前
前端 Vue 专栏 09:Vue Router 与前端路由
前端
無限進步D1 小时前
Java Web 前端 简介
java·开发语言·前端·css·html·css3·web
码士集团小青1 小时前
从落地到“半停用“:qiankun 微前端在一个 Vue 3 + Vite 项目中的完整实践与反思
前端
the局外人2 小时前
掌控自己的 K 线数据:TradingView 本地部署与数据源接入
前端·vue.js·websocket