当我从Linux转换为Windows托管时,Angular默认路由停止工作



tl; dr:

当某人访问 mywebsite.com 时,默认路由应重定向到 myWebsite.com/about.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 文件(我必须在Windows主机上使用它,因为IIS重写模块未安装在那里):

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*) /index.html [NC,L]

所以,正如我所说:访问我的网站时的默认路线不会加载。一旦我单击任何路由(通过NAVBAR),它们会正确加载。用F5刷新它们也有效。

我不知道有关重写的事情,或者我是否可以使用特殊规则来解决这个问题。

对我感到羞耻:就像我经常解决问题发布后的问题。

我的Windows托管提供商为我要托管的每个应用程序应用了一个基本的Web.config文件。因此,我在iis root中有一个web.config和一个附加的web.config&.htaccess文件在网站目录中。

我通过删除所有web.config文件(来自域根和网站目录),仅将.htaccess文件留在网站目录中。

最新更新