Firebase工具错过了在本地测试模式下以HTML文件的形式发送Js文件



目前我使用firebase宿主和firebase数据库来部署静态页面web应用程序。我在本地测试我的主机时遇到了一个问题。我的两个Js文件modules.jsmain.js中的一个以html文件的形式发送。所以在我的客户端浏览器(Firefox(中,控制台中出现了这个错误:

Uncaught SyntaxError: expected expression, got '<'

我试图更改Firebase配置中的headers项目:

"headers": [
    {
        "source": "**/*.@(js)",
        "headers": [
            {
                "key": "Content-Type",
                "value": "application/javascript; charset=utf-8"
            }
        ]
    }
]

即使更改了头,文件仍然提供HTML内容。(在网络标签中,它说js,但它的响应仍然是html内容,而不是js内容。(

当然,我也重新启动了本地服务器。我还禁用了开发工具中的缓存,以确保我的浏览器不断下载最新的文件。剩下的唯一选项是重新启动整个计算机。但即使它能解决问题。我仍然想知道为什么会发生这种情况。

当您重写单页应用程序时,通常会发生这种情况(例如{"source": "**", "destination": "/index.html"}<script>标签的src URL无效,因此会提供index.html

我会检查以下问题:

  1. 您是否使用非根URL的相对路径(例如js/modules.js(
  2. 您是否与输出文件的大小写完全匹配
  3. 当您尝试通过JS文件的URL直接访问该文件时会发生什么

同样,问题不是JS文件被作为HTML提供,而是当找不到JS时,默认的HTML文件被提供。

最新更新