2016-12-08 2 views
0

поэтому для выхода приложения, существует требование, чтобы все URL-адреса имеют расширение .app ...Webpack Devserver - Angular2 - позволяет расширения

так http://domain/news.app http://domain/article.app?blah=blah

в то время как это прекрасно работает на производстве (Apache) сервер (фактическая разрешения расширений) он не работает на моем WebPack Dev сервере ... или, по крайней мере, я не могу найти какую-либо настройки, чтобы заставить его работать

в моих угловых приложениях маршрутов, например, у меня есть этот

const appRoutes: Routes = [ 
    { path: 'home.app', pathMatch: 'full', component: AppPage}, 
    { path: 'news.app', pathMatch: 'full', component: AppNews} 
]; 

webpack.dev конф

output: { 
    path: helpers.root('dist'), 
    publicPath: 'http://localhost:8080/', 
    filename: '[name].js', 
    chunkFilename: '[id].chunk.js' 
}, 

так, если я http://localhost:8080/news.app .... Я получаю

не может получить /news.app

Как установить DEV-сервер, позволит /news.app?

ответ

1
devServer: { 
    port: 8080, 
    historyApiFallback: { 
     index: 'index.html' 
    } 
    } 

Это перенаправит все ваши вызовы index.html, а затем маршрутизатор Angular2 возьмет его оттуда.

Тайна, конечно, стоит за historyApiFallback, который скажет webpack вернуться к index.html в любом случае.

+0

не похоже на работу .... будет сделать немного больше тестирование ... возможно ли, что это не работает, потому что baseurl не установлен на «/»? Проведет ли какое-нибудь исследование и отчитается –

+0

, возможно ли это, что причина 'dist' установлена ​​в пути вывода? –

+0

Я нашел настройку, которая заставила ее работать historyApiFallback: {disableDotRule: true}, - СПАСИБО –

0

I found the setting в historyApiFallback .... что решает мою проблему

historyApiFallback: { 
    disableDotRule: true 
}, 

Благодаря xe4me, что указал мне в правильном направлении