Я отправляю это сообщение, потому что не нашел подходящего ответа.Я занимаюсь разработкой веб-сайта с использованием Angular 6, Asp.net Core 2.2 и IIS 10. Моя проблема связана с маршрутизацией при непосредственном указании адреса в области ввода URL-адреса браузера.Используя сайт, внутри навигации все работает нормально.План моего сайта:
/
--> /upload
--> /admin
----> /admin/admincreateuser
----> /admin/manageuserlicencepanel
Вот мои настройки:
Угловая 6
export const appRoutes: Routes = [
{
path: 'upload',
runGuardsAndResolvers: 'always',
canActivate: [AuthGuard],
children: [
{path: '', component: UploadComponent, data: {roles: ['Customer']} },
]
},
{
path: 'admin',
runGuardsAndResolvers: 'always',
canActivate: [AuthGuard],
children: [
{path: '', component: AdminComponent, data: {roles: ['Admin', 'Moderator']}},
{path: 'admincreateuser', component: AdminCreateUserComponent, data: {roles: ['Admin', 'Moderator']}},
{path: 'manageuserlicencepanel', component: ManageUserLicencePanelComponent, data: {roles: ['Admin', 'Moderator']}}}}
]
},
{path: '', component: HomeComponent},
{path: '**', redirectTo: '', pathMatch: 'full'}
];
ASP.Net Core 2.2
Startup.cs
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseMvc(routes =>
{
routes.MapSpaFallbackRoute(
name: "spa-fallback",
defaults: new { controller="FallbackController", action = "Index"}
);
}
}
FallbackController.cs
public class FallbackController : Controller
{
public IActionResult Index()
{
return PhysicalFile(Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "index.html"), "text/HTML");
}
}
Эта конфигурация работает правильнодаже на развертывание IIS.Но невозможно ввести непосредственно URL-адрес (то есть https://www.dzfzx.com/upload) в адресной строке, потому что я получаю ошибку 404.Чтобы решить эту проблему, я попытался добавить URL Rewrite в IIS следующим образом:
<system.webServer>
<rewrite>
<rewriteMaps>
<rewriteMap name="^(.*)$" />
</rewriteMaps>
<rules>
<rule name="All routes" stopProcessing="true">
<match url="^(.*)$" />
<action type="Rewrite" url="/" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_URI}" pattern="/api(.*)$" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_URI}" pattern="^api/" negate="true" />
</conditions>
</rule>
</rules>
</rewrite>
</system.webServer>
. При реализации этого я получаю непосредственно на домашней странице ошибку:
Uncaught SyntaxError: Неожиданный токен<</em>
Обратите также внимание на то, что мне кажется, что в моем FallbackController никогда не происходит сбой, который кажется ненормальным.
У вас есть представление о том, как я могу заставить его работать (Directввод адресной строки)?
Спасибо.