Javascript 如何解决angular PathLocationStrategy(html5路由)刷新404而无需将所有资源重定向到主页

Javascript 如何解决angular PathLocationStrategy(html5路由)刷新404而无需将所有资源重定向到主页,javascript,node.js,angular,angular-ui-router,Javascript,Node.js,Angular,Angular Ui Router,我使用Angular7和Node 8.11.4作为web应用程序,现在我需要从url中删除“#”,因此我将locationStrategy表单HashLocationStrategy更改为PathLocationStrategy,并在index.html中添加 它可以工作,但你知道刷新页面后会出现404错误,我知道如何将所有资源重定向到主页,但我的目的是将一些资源重定向到特定的组件或页面,因为我需要直接访问这些页面,而不是从主页访问,这是我的问题,我在谷歌上搜索,发现大部分的功能是重定向到主页,

我使用Angular7和Node 8.11.4作为web应用程序,现在我需要从url中删除“#”,因此我将locationStrategy表单
HashLocationStrategy
更改为
PathLocationStrategy
,并在index.html中添加

它可以工作,但你知道刷新页面后会出现404错误,我知道如何将所有资源重定向到主页,但我的目的是将一些资源重定向到特定的组件或页面,因为我需要直接访问这些页面,而不是从主页访问,这是我的问题,我在谷歌上搜索,发现大部分的功能是重定向到主页,而不是特定的页面,我知道Angular vue react都使用前端路由器,但我仍然想知道是否可以直接访问特定的页面

例如:访问
http://localhost:4200/aaa
,则无需重定向到主页localhost:4200,即可直接显示页面aaa/aaa是指向角度组件的路径


如果您在
路径定位策略
html5路由器
上有任何解决方案或相同的问题,请发布您的答案。问题已得到解决,似乎许多人都有相同的问题,请在此处发布我的解决方案

对于节点服务器:

server.js
的底部,添加以下方法:

const fs = require("fs");
app.use((req, res)=>{
  let rs = fs.createReadStream(`${__dirname}/dist/{your project name}/index.html`);
  res.writeHead(200, {"Content-type": "text/html"});
  rs.pipe(res);
})
\uu filename
:这是节点变量,表示当前模块的文件名

fs
fs
模块提供了一个与文件系统交互的API

这是在您的服务器中找不到资源的路由,例如
/aaa
更改为PathLocationStrategy后尝试刷新页面/aaa,您将收到404错误, 添加此路由后,所有未找到的资源都将转到此路由,然后
fs.createReadStream(${uuuu dirname}/dist/{your project name}/index.html)
将把您的资源重定向到index.html,之后Angular index.html将处理您的路由并重定向到正确的页面