Firebase-tool 未能在本地测试模式下将我的 Js 文件作为 HTML 文件发送
Firebase-tool missed sending my Js files as HTML file in locally testing mode
目前我使用 firebase-hosting 和 firebase-database 来部署 static-page 网络应用程序。我在测试本地托管时遇到问题。我的两个 Js 文件之一 modules.js
和 main.js
作为 html 文件发送。因此,在我的客户端浏览器 (Firefox) 中,控制台中一直出现此错误:
Uncaught SyntaxError: expected expression, got '<'
我尝试更改 Firebase 配置中的 headers
项:
"headers": [
{
"source": "**/*.@(js)",
"headers": [
{
"key": "Content-Type",
"value": "application/javascript; charset=utf-8"
}
]
}
]
即使 header 已更改,文件仍会提供 HTML 内容。 (在网络选项卡中,它说 js,但它的响应仍然是 html 内容,而不是 js 内容。)
当然,我也重新启动了本地服务器。我还在开发工具中禁用缓存以确保我的浏览器继续下载最新文件。剩下的唯一选择是重新启动整个计算机。但就算能修好。我还是想知道为什么会这样。
这通常发生在您重写单页应用程序时(例如 {"source": "**", "destination": "/index.html"}
并且您的 <script>
标签具有无效的 src
URL,因此 index.html
改为服务。
我会检查以下问题:
- 您是否使用来自非根 URL 的相对路径(例如
js/modules.js
)?
- 输出文件的大小写是否完全匹配?
- 当您尝试通过 URL 直接访问 JS 文件时会发生什么?
同样,问题不在于 JS 文件作为 HTML 提供,而是在未找到 JS 时提供默认 HTML 文件。
目前我使用 firebase-hosting 和 firebase-database 来部署 static-page 网络应用程序。我在测试本地托管时遇到问题。我的两个 Js 文件之一 modules.js
和 main.js
作为 html 文件发送。因此,在我的客户端浏览器 (Firefox) 中,控制台中一直出现此错误:
Uncaught SyntaxError: expected expression, got '<'
我尝试更改 Firebase 配置中的 headers
项:
"headers": [
{
"source": "**/*.@(js)",
"headers": [
{
"key": "Content-Type",
"value": "application/javascript; charset=utf-8"
}
]
}
]
即使 header 已更改,文件仍会提供 HTML 内容。 (在网络选项卡中,它说 js,但它的响应仍然是 html 内容,而不是 js 内容。)
当然,我也重新启动了本地服务器。我还在开发工具中禁用缓存以确保我的浏览器继续下载最新文件。剩下的唯一选择是重新启动整个计算机。但就算能修好。我还是想知道为什么会这样。
这通常发生在您重写单页应用程序时(例如 {"source": "**", "destination": "/index.html"}
并且您的 <script>
标签具有无效的 src
URL,因此 index.html
改为服务。
我会检查以下问题:
- 您是否使用来自非根 URL 的相对路径(例如
js/modules.js
)? - 输出文件的大小写是否完全匹配?
- 当您尝试通过 URL 直接访问 JS 文件时会发生什么?
同样,问题不在于 JS 文件作为 HTML 提供,而是在未找到 JS 时提供默认 HTML 文件。