2017-10-04 12 views
0

ngx-rocket yeoman 생성기를 사용하여 Angular 4 앱의 일부 페이지 경로를 성공적으로 설정했습니다. 예를 들어 나는 '먹다'라는 페이지를 만들었고 www.haakon.io에서 내 홈페이지로 이동 한 다음 먹는 링크를 클릭하면 해당 페이지로 이동합니다. 해당 링크를 브라우저에 입력하면 (예 : http://www.haakon.io/eat) 탐색을 시도하면 404 오류 페이지가 표시됩니다. 이 문제는 깊은 연결 문제와 관련이 있다는 것을 알고 있지만 각도 1.5 솔루션을 시도했지만 작동하지 않습니다. 특히 내가 기본 href 내 index.html 페이지에서 설정 한 :Angular 4 ngx-rocket 딥 링크 라우팅 문제

여기
import { NgModule } from '@angular/core'; 
import { Routes, RouterModule } from '@angular/router'; 

const routes: Routes = [ 
    // Fallback when no prior route is matched 
    { path: '**', redirectTo: '', pathMatch: 'full' } 
]; 

@NgModule({ 
    imports: [RouterModule.forRoot(routes)], 
    exports: [RouterModule], 
    providers: [] 
}) 
export class AppRoutingModule { } 

내 route.service.ts입니다 : 여기

<base href="/"/> 

내 앱 routing.module.ts 파일입니다

import { Routes } from '@angular/router'; 

import { ShellComponent } from './shell/shell.component'; 

/** 
* Provides helper methods to create routes. 
*/ 
export class Route { 

    /** 
    * Creates routes using the shell component and authentication. 
    * @param routes The routes to add. 
    * @return {Routes} The new routes using shell as the base. 
    */ 
    static withShell(routes: Routes): Routes { 
    return [{ 
     path: '', 
     component: ShellComponent, 
     children: routes 
    }]; 
    } 

} 

그리고 마지막으로 내 먹을-routing.module.ts :

import { Route } from '../core/route.service'; 
import { extract } from '../core/i18n.service'; 
import { EatComponent } from './eat.component'; 

const routes: Routes = Route.withShell([ 
    { path: 'eat', component: EatComponent, data: { title: extract('Eat') } } 
]); 

@NgModule({ 
    imports: [RouterModule.forChild(routes)], 
    exports: [RouterModule], 
    providers: [] 
}) 
export class EatRoutingModule { } 

답변

0

더 많은 조사가 끝나자 파일이 서버에서 삭제되어 서버 수준의 기본 라우팅에 영향을 준 것으로 나타났습니다.

처음에는이 문제를 삭제할 생각 이었지만 누군가를 돕기 위해 답변을 게시하기로 결정했습니다.

이 솔루션은 다음과 같은 내용 htaccess로 파일을 만들고 호스트에 루트 폴더에 그것을 배치했다 :

# If the request is a file, folder or symlink that exists, serve it up 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^(.+)$ - [S=1] 

# otherwise, serve your index.html app 
RewriteRule ^(.+)$ /index.html 

지금에 직접 입력하여 접근 www.haakon.io/art입니다 브라우저 또는 다른 웹 사이트의 링크.