在我的localhost:4200
中,直接输入如下所示的绝对URL正常。
http://localhost:4200/blogs/1
http://localhost:4200/blogs/2
http://localhost:4200/blogs/3
但是在发布到IIS/Azure CDN
之后,我遇到了以下错误。
404-找不到文件或目录。您正在寻找的资源 可能已被删除,更名或暂时被删除 不可用。
通过routerLink <span routerLink="/blogs/1">Blog1</span>
浏览可以正常工作。
“我的路由器”显示在下方
{ path: 'blogs', component: BlogsComponent },
{ path: 'blogs/:id', component: BlogComponent }
我在这里想念什么?
答案 0 :(得分:0)
您需要在发布的文件夹中添加 web.config 文件。
赞:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="AngularJS" 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>
</rules>
</rewrite>
</system.webServer>
</configuration>
答案 1 :(得分:0)
您的IIS必须配置为将所有从basehref开始的URL重定向到index.html页面。
在加载了文档(index.html
和随后的main.js
)之后,Angular路由器开始工作。
您的IIS可能正在尝试自行处理完整的地址。
您需要告诉它使用
https://your-site/**
到您的index.html。