当某人访问 mywebsite.com 时,默认路由应重定向到 mywebsite.com/about 。这不起作用,我的组件也无法加载到路由器出口中。
我最近从Linux托管切换到Windows托管。 第一步,我上传了我的投资组合网站,它是一个纯粹的Angular / Typescript应用程序。
此站点在linux上运行良好,但是在Windows上,默认路由似乎已停止工作。这是路线:
const appRoutes: Routes = [
{ path: '', redirectTo: 'about', pathMatch: 'full' },
{ path: 'about', component: HomeComponent },
{ path: 'skills', component: SkillsComponent },
{ path: 'interests', component: InterestsComponent }
];
这是我的 .htaccess 文件(由于未在其中安装IIS Rewrite Module,因此必须在Windows主机上使用):
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*) /index.html [NC,L]
因此,正如我所说:当我访问我的网站时,默认(大约)路线不会加载。 一旦我点击了任何路线(通过导航栏),它们就会正确加载。用F5刷新它们也可以。
我对RewriteRules一无所知,或者我是否可以使用特殊的规则来解决此问题。
答案 0 :(得分:0)
对我感到羞耻:经常这样,我在SO上发布 后就解决了问题。
我的Windows托管提供程序为我要托管的每个应用程序都应用了基本的web.config文件。 因此,我在IIS根目录中有一个web.config,在网站目录中还有一个web.config和.htaccess文件。
我通过删除所有web.config文件(都来自域根目录和网站目录)并仅将.htaccess文件保留在网站目录中来解决此问题。