При попытке загрузить Localhost: 3000/verifyemail в моем браузере, я получаю сообщение об ошибке:Угловое 2 Маршрутизатор: не может соответствовать любому маршруты
Error: Cannot match any routes
Я прочитал другие SO вопросы по этому вопросу, и есть проверено:
- Угловая2: 2.3.1 по умолчанию использует стратегию определения местоположения пути, и я ее не изменил. Я предпочитаю не использовать Hash Расположение стратегии
Я настроил мой сервер Nodejs для HTML5 PushState (server.js ниже)
// Parsers for POST data app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); // Point static path to dist app.use(express.static(path.join(__dirname, 'dist'))); // Get API routes const api = require('./src/server/routes/api.js'); // Set api routes app.use('/api', api); // Catch all other routes and return the index file app.get('*', (req, res) => { res.sendFile(path.join(__dirname, 'dist/index.html')); }); const port = process.env.PORT || '3000'; app.set('port', port); const server = http.createServer(app); server.listen(port,() => console.log(`API running on localhost:${port}`));
У меня есть
<base href="/">
в верхней части моей<head>
в моем индексе. HTMLу меня есть по умолчанию и поймать-все маршруты установить
const appRoutes: Routes = [ { path: 'home', outlet: 'full-page', component: DefaultLandingPageComponent }, { path: 'verifyemail', outlet: 'full-page', component: EmailVerificationComponent }, { path: '', redirectTo: '/home', pathMatch: 'full' }, { path: '**', outlet: 'full-page', component: DefaultLandingPageComponent } ];
Я импортировал модуль маршрутизатора в моих app.module.ts, и включал в себя выход маршрутизатора в моем файле app.component.html
//in app.module.ts: @NgModule({ ... imports: [ ... RouterModule.forRoot(appRoutes) ] ... }); //in app.component.html import { RouterModule, Routes } from '@angular/router';
Спасибо большое, чтобы тот, кто может дать мне руку с этим!
Update 1 Я удалил все имена из маршрутов и выход маршрутизатора, благодаря наблюдению Гюнтера Zöchbauer в комментариях ниже
Update 2 Все работает, как ожидалось на локальном хосте: 4200/verifyemail , который запускается через ng serve
. Проблема сохраняется при использовании localhost: 3000/verifyemail, которая запускается через node server.js
Большое спасибо за помощь - возможно, это была проблема, но она все еще не работает. Я удалил свойство name из маршрутов и с выхода маршрутизатора, который теперь читает '<маршрутизатор-выход> router-outlet>'. Перезагрузка сервера работает - если я изменю res.sendFile на любой другой файл, кроме index.html, он сделает это правильно. Проблема в том, что когда он получает перенаправления на index.html, а затем не может найти маршруты – ManGI1
Извините, не могу помочь вам с настройками сервера node.js. –
Спасибо - сервер работает нормально, поэтому я думаю, что проблема находится на угловой стороне. Делает ли что-нибудь еще в моем угловом коде, как может быть, проблема? Оцените свою помощь – ManGI1