关于此问题的注意事项:我注意到它只发生在某些类型的构建过程中。由于我使用
angular-cli
,因此每次使用ng build
编译应用程序时都会出现此错误。唯一的例外是我使用ng build --prod
时。我使用了我曾经使用过的任何其他标志,例如--dev --aot
,然后我会在无法刷新页面时收到错误。使用ng build --prod时,页面上的刷新将使应用程序按预期运行。但在开发过程中,这意味着每次对代码进行更改时都需要运行命令,否则我会收到如下错误:
(void 0) is not a function
我试图使用wamp服务器来使用Angular 5延迟加载的模块,但是当我使用延迟加载的模块刷新页面时我遇到了问题。这是我的路由配置:
// Root routing config
export const mainRouting: Routes = [
{ path: '', redirectTo: 'home', pathMatch: 'full' },
{
path: '',
component: PortalComponent,
canLoad: [ResolveGuard],
children: [
{ path: 'home', component: HomeComponent },
{
path: 'page',
loadChildren: './modules/page/page.module#PageModule'
},
{
path: 'user',
component: UserComponent,
children: [
{ path: 'profile', component: ProfileComponent },
{ path: 'config', component: ConfigComponent },
]
}
]
},
];
// LazyLoaded routing config
export const pageRouting: Routes = [
{
path: '',
children: [
{ path: 'about', component: PageAboutComponent },
{ path: 'condition', component: PageConditionComponent }
]
}
];
一切都按预期工作。我可以导航到应用程序的主页,我可以访问延迟加载的路由(page/about
和page/condition
),PageModule
仅按需加载等等。
问题是当我在网址/page/about
上(例如)并刷新页面时,我收到404错误。
如果我在网址/user/profile
上刷新页面,则应用程序会按预期加载,因为user
不是延迟加载的,而是在主模块中。<\ n / p>
我已经使用了这个.htaccess配置
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
但只有在这种特殊情况下,它才能正常工作。有没有办法解决这个问题?