我有一个工作的NodeJS服务器和一个Angular 9应用程序。我可以在开发模式下测试该应用程序,它可以完美运行。
但是,当我使用ng build --prod
构建应用程序并尝试使用NodeJS服务器对其进行访问时,我遇到了一些有关文件加载的错误:
拒绝应用以下样式 “ http://localhost:8080/styles.09cf2cc3740ba29d305c.css”,因为 MIME类型('text / html')不是受支持的样式表MIME类型,并且 启用了严格的MIME检查。
获取http://localhost:8080/runtime.689ba4fd6cadb82c1ac2.js net :: ERR_ABORTED 404(未找到)
我在应用程序中有一个代理文件,将其所有请愿书重定向到NodeJS:
proxy.conf.json
{
"/api/*": {
"target": "http://localhost:8080",
"secure": false,
"logLevel": "debug",
"changeOrigin": true
}
}
我想念什么吗?
答案 0 :(得分:0)
proxy.conf.json
旨在通过使用backend
在开发环境中重写url,为您提供访问ng serve
的简便方法。
例如,实际上,通过访问http://localhost:4200/api
,您可以访问http://localhost:3000/api
。 (因此您的后端)。
但是,这里的问题是如何使用NodeJS提供Angular文件。
这是一个最小的express
代码,它为API
端点/api
和public
子目录中的静态文件提供服务。
const express = require('express')
const app = express()
app.use(express.static('public'));
app.get('/api', function (req, res) {
res.send({ message: 'api ok' })
})
app.listen(3000, function () {
console.log('Example app listening on port 3000!')
})
将ng build --prod
(请参见dist
文件夹和your-app-name
子文件夹中的文件)生成的所有文件复制到public
文件夹中。
node app.js
您将可以通过http://localhost:3000
访问Angular应用,而Angular应用将可以通过http://localhost:3000/api
访问API。