快速路由静态文件:无法加载模块脚本



我以一贯的方式为Angular 9应用程序提供服务,这是我第一次遇到这个问题。

我不断地得到以下错误:;未能加载模块脚本:服务器以非JavaScript MIME类型"响应;text/html";。

我在网上搜寻答案,似乎找不到任何解决问题的方法。我所做的一切似乎都遵循了给出的建议。我想知道这是否是Angular v9的新问题?

我的express app.js位于Angular项目的另一个文件夹中。以下是我的文件夹结构:

  • 客户端

    • dist
      • index.html
  • 中间层

    • app.js

app.js:

app.use(express.static(__dirname + '/dist'));
app.get('*/', (req, res) => { 
const indexFile = path.join(__dirname, '../client/dist/index.html');
res.sendFile(indexFile);
})

文件路径是正确的,我已经把它记录下来了,所有这些都加起来了。我还将angular.json中的输出路径更改为dist,而不是另一个子文件夹。

我仍然会犯这个错误。

您必须使用express.static()

app.use(express.static(path.join(__dirname, '../client/dist')))

这里的问题是,你总是用index.html文件响应,如果文件包含一些<script>标记,那么浏览器会期望收到.js文件,但你的服务器用.html文件响应,这就是为什么你会收到错误。

相关内容

  • 没有找到相关文章

最新更新