javascript - Vue.js 将 javascript 文件路由为索引页面
问题描述
我有几个 JavaScript 文件,我想将它们全局包含在我的网页中。
在index.html
中,我包含了脚本:
<script type="text/javascript" src="./js/my-file.js"></script>
在控制台中,它给出了错误:
Uncaught SyntaxError: Unexpected token '<'
当我直接在 http://localhost:8080/js/my-file.js 访问 URL 时,它将index.html
页面显示为内容而不是 JavaScript 文件的内容:
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="/favicon.ico">
<title>main-interface-2</title>
<script type="text/javascript" src="/js/my-file.js"></script>
<link href="/js/app.js" rel="preload" as="script"><link href="/js/chunk-vendors.js" rel="preload" as="script"></head>
<body>
<noscript>
<strong>We're sorry but main-interface-2 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
<script type="text/javascript" src="/js/chunk-vendors.js"></script><script type="text/javascript" src="/js/app.js"></script></body>
</html>
我认为这可能是因为我的路径错误,或者 Vue 路由器在不应该路由 JavaScript 页面时进行了路由。
我如何将常规 JavaScript 文件全局包含到我的 Vue 项目中,因为它们不是npm
使用export
并依赖于全局包含在头部中才能正常运行的包?
解决方案
Unexpected token '<'
听起来您的 JavaScript 文件在指定的 URL 中不存在,因此 Webpack 开发服务器正在回退到public/index.html
,导致<script>
标签无法将 HTML 解析为 JavaScript。
作为故障排除步骤(让您看得404
更清楚),您可以将项目配置为禁用开发服务器回退devServer.historyApiFallback=false
:
// vue.config.js
module.exports = {
devServer: {
historyApiFallback: false
}
}
静态资产
将您的静态 JavaScript 文件复制到public
文件夹下的某个位置,以便它们自动捆绑:
<projectRoot>/public/js/my-file.js
然后你可以public/index.html
像这样使用它:
<script src="/js/my-file.js">
推荐阅读
- javascript - 使用 express 如何发送 blob 对象作为响应
- node.js - Mongoose中的多个嵌套过滤器
- apache-kafka - 将主题、ACL 和消息从 apache kafka 迁移到融合平台
- amazon-web-services - 在 EC2 中启动带有路径修改的批处理脚本
- c# - SSRS - 子报告中的子报告
- mpandroidchart - #MPAndroidChart 如何绕过 StackedBar 图表上的空数据
- php - 无法从网页中抓取特定项目
- javascript - jQuery 选择器在 AngularJS ng-view 指令中不起作用
- python - 我们如何从字典创建相似度矩阵?
- javascript - Google Analytics Evant 跟踪代码实现