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 应用程序中使用。

相关推荐
optimistic_chen几秒前
【Vue入门】scoped与组件通信
linux·前端·javascript·vue.js·前端框架·组件通信
SuperEugene6 分钟前
前端空值处理规范:Vue 实战避坑,可选链、?? 兜底写法|项目规范篇
前端·javascript·vue.js
前端百草阁7 分钟前
Vue3 Diff 算法详解
前端·javascript·vue.js·算法·前端框架
im_AMBER8 分钟前
前后端对接: ESM配置与React Router
前端·javascript·学习·react.js·性能优化·前端框架·ecmascript
学且思10 分钟前
使用import.meta.url实现传递路径动态加载资源
前端·javascript·vue.js
problc12 分钟前
OpenClaw 的前端用的React还是Vue?
前端·vue.js·react.js
凰轮15 分钟前
vue实现大文件切片上传
vue.js
冰暮流星15 分钟前
javascript里面的return语句讲解
开发语言·前端·javascript
步步为营DotNet19 分钟前
使用.NET 11的Native AOT提升应用性能
java·前端·.net
Never_Satisfied20 分钟前
在JavaScript / HTML中,监听鼠标滚动事件
javascript·html·计算机外设