2017-10-05 8 views
2

Kestrelを使用してLinux上でasp .netコアアプリケーションを実行しています。asp .netコアアプリケーションをサブフォルダの下にホストする方法

それはIPにポート80

で[OK]を結合するが、nginxのリバースプロキシサイトでは、例えば、非ルート・パスの下でアプリをホストする必要があります

http://somesite.com/myapp

これは、アプリケーションの負荷okですが、アプリがmyappのパスについて知らない - ので、ルートからコンテンツパスのリソースをロードしようとします。したがって、CSSリソースなどは読み込まれません。

実行時にURLパスを知るためにアプリケーションを理想的に設定するにはどうすればよいですか。

更新:

私はStartup.configureに( "/ myappという")をapp.UsePathBaseを使用していることを発見しました。アプリケーションがこのパスでリクエストを処理するのに役立ちます。しかし静的ファイルリクエストは/myapp/images/example.jpgで404を返します。

imagesフォルダはwwwrootにあります - 私が理解するようにデフォルトUseStaticFilesの場合

私は/ myappが実質的に仮想であったことを理解する要求を期待していました。

答えて

1

ScottC、

Webコンテンツは、スタートアップクラスで設定セクションに)あなたが(app.UseStaticFilesを追加する必要がwwwrootの下になったら。

public void Configure(IApplicationBuilder app, IHostingEnvironment env) 
{ 
    app.UseStaticFiles(); 
} 

希望あなたを助けたのは:

は、以下の例を参照してください。私はアプリのためのBasePath変数を設定し、静的のパスを指定する必要がありました起動時のconfigureメソッド内

: -

+0

私はapp.UseStaticFilesを使用していますが、起動時に – ScottC

1

OKので2つのものは、「仮想ディレクトリ」の下で実行されているアプリを取得するために行われなければなりませんでしたファイル。

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
{ 
... 
app.UseStaticFiles("/myapp"); 
app.UsePathBase("/myapp"); 
... 
} 

このアプリは/からも実行されますが、これが望ましいかどうかはわかりませんが、今は大きな問題ではありません。

+0

これは私のために働いていました。サイトは/と/ myappの両方からアクセス可能でした – Ron

関連する問題