节点服务器时得到空白页?"/>
为什么我从运行指向Angular应用程序的/ dist文件夹的节点服务器时得到空白页?
我的简单节点服务器是:
const express = require('express');
const app = express();
app.get('*', (req, res) => {
res.sendFile(__dirname + '/dist/page/index.html');
})
app.listen(3335, () => { console.log('Server is listening on 3335'); });
但是我得到的索引文件似乎没有运行main.js Angular应用程序,目前它实际上是一个页面/组件,即appponent.ts,因此没有任何路由。
回答如下:
使用express.static()提供静态文件。
这是因为您为服务器将收到的每个请求都设置了“ index.html”文件的响应。 第一个响应会很好,那就是只有预期的那样才是index.html页面。 但是,index.html页面必须具有一些脚本和css标记才能获取您的Angular Javascript代码,我认为它们将在同一节点服务器上。 因此,当浏览器遇到如下一行时:
<script src="/angularApp.js"></script>
..在解析它的index.html文件中时,它将向节点服务器发出另一个对http://localhost:<port>/angularApp.js
但会得到index.html文件作为响应,因为你已经设定了。
这样做是为了提供静态文件,例如.html,.css,.js或您拥有的文件:
app.use(express.static(path.join(__dirname, '/dist')));
更多推荐
为什么我从运行指向Angular应用程序的/ dist文件夹的节点服务器时得到空白页?
发布评论