gpt4 book ai didi

angular - 将 Angular 部署到 IIS 7.5 无法正常工作

转载 作者:行者123 更新时间:2023-12-02 03:21:18 25 4
gpt4 key购买 nike

我想部署我的 Angular 项目,但它丢失了组件

我的流程

第 1 步:

我执行命令:

ng-build --prod

第 2 步:

我在 IIS 中添加网站,路径在 dist

第 3 步:

索引页工作正常但找不到其他组件登录404

http://localhost/login HTTP Error 404.0 - Not Found

在文件 App.Module.Ts 我是配置路由

const routesConfig:Routes=
[
{path:"kinds",component:KindsComponent},
{path:"",component:FilmsComponent},
{path:"films",component:FilmsComponent},
{path:"login",component:LoginComponent},
{path:"accounts",component:AccountsComponent},
{path:"customers",component:CustomersComponent},
{path:"director",component:DirectorComponent}
];

Note Again: http://localhost working normal but other component not found when i build project and deploy in IIS

最后:

它是如何工作的?我的错误在哪里?

最佳答案

您需要在 IIS 中为任何路由创建到 index.html 的重定向,因为在 Angular SPA 中,应用负责路由而不是服务器 请参见此处 Angular routing .

一次<强> http://yourdomain/ 被请求 -> index.html 得到服务,最后应用程序被引导。

但是一旦<强> http://yourdomain/login 被请求并且没有服务器端重定向到 index.html 服务器没有任何资源映射到该路由并使用 404 - Not Found< 解析请求 错误。

一旦您为任何以 404 - Not Found 错误结尾的请求提供 index.html(css、图像字体等 Assets 除外),Angular 路由器应用程序启动后接管并显示相应的 View 。

这里是 IIS 的重写规则示例:

<rule name="Angular" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>

关于angular - 将 Angular 部署到 IIS 7.5 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54704866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com