2017-02-12 9 views
3

この問題に関するその他の質問を読んだところ、回答は私を助けてくれなかったようです。たぶん私はASP COREを使用しているからかもしれません。 http://localhost:5000/#homeに移動すると、ルーティングが正常に機能します。しかし、ハッシュタグを削除すると、ページが読み込まれません。私もこれを追加しようとしましたAureliaがハッシュのないURLを読み込んでいない

import {Redirect, NavigationInstruction, RouterConfiguration} from 'aurelia-router'; 

export class App { 
    configureRouter(config: RouterConfiguration): void { 
    config.title = 'xxxx'; 
    config.options.hashChange = false; 
    config.options.root = '/'; 
    config.map([ 
     { route: ['home'], name: 'home', moduleId: 'views/home' }, 
     { route: '', redirect: 'home'} 
    ]); 
    } 
} 

:ここに私のルーティングコードである

config.options.pushState = true; 
config.options.hashChange = true; 
+0

私はこれに興味ハッシュタグでも...私は見てきた例とそれが私のアプリの仕組みです。 – LStarky

+1

OKですが、サーバー側のルーティングも変更しましたか?すべてのURLをrootにリダイレクトする必要があります。この質問に対する答えを確認してください:http://stackoverflow.com/questions/36650287/how-to-remove-from-url-in-aurelia –

+0

pushStateナビゲーションにはサーバー側の設定が必要です。あなたはサーバを正しく設定する必要があります –

答えて

1

あなたがインデックスにあなたの要求をリダイレクトするためのセットアップサーバー側のルーティングに必要なasp.netのコアを使用している場合。 html。代わりに、あなただけの、例えば同じモジュールIDに複数のルートを設定することができ、リダイレクトの

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
    { 
     app.Use(async (context, next) => 
     { 
      await next(); 

      if (context.Response.StatusCode == 404 
       && !Path.HasExtension(context.Request.Path.Value)) 
      { 
       context.Request.Path = "/index.html"; 
       await next(); 
      } 
     }); 

     app.UseStaticFiles(); 
    } 
+0

私はこれを稼働させようとしましたが、運がなかった。私は今夜​​それと時間を過ごさなければならないかもしれません。このようなものがなぜ機能するのか理解していますが、それだけではまだフレンドリーではありません。ありがとう。 –

0

:ConfigureメソッドであなたのStartup.csでは、このような何かをする必要がありますあなたがプッシュ状態の設定を変更する心配はありませんあなたのURLで#を持つに満足している場合

config.map([ 
     { route: ['home'], name: 'home', moduleId: 'views/home' }, 
     { route: '', name: 'home2', moduleId: 'views/home'} 
    ]); 

関連する問題