2017-10-05 125 views
2

我有一個使用Kestrel在Linux上運行的asp.net網絡核心應用程序。如何在一個子文件夾下託管一個asp.net網絡核心應用程序

它結合到IP端口80上

確定,但nginx的反向代理站點需要來託管應用程序的非根路徑下例如

http://somesite.com/myapp

因此,這是確定的,應用程序加載,但應用程序並不瞭解MYAPP路徑 - 所以嘗試從根加載內容路徑資源。因此,CSS資源等不加載。

如何在運行時理想地配置應用程序以瞭解url路徑。

更新:

我已經發現,在使用Startup.configure app.UsePathBase( 「/ MyApp的」);因爲應用程序將處理這個路徑上的請求確定 - 但是靜態文件請求然後是/myapp/images/example.jpg,它返回一個404.

images文件夾在wwwroot - 默認情況下,據我瞭解爲UseStaticFiles。

我本來期望的要求是理解/ myapp實際上是虛擬的。

回答

1

ScottC,

一旦你的網站內容是在你有關於啓動類的配置部分添加app.UseStaticFiles()wwwroot文件。

請參見下面的例子:

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

希望能幫助你。

+0

謝謝,但在啓動配置我使用app.UseStaticFiles – ScottC

1

OK - 所以兩件事情必須做,以獲取應用程序的「虛擬目錄」下運行:

裏面的啓動配置方法,我不得不設置基本路徑的應用程序,並指定靜態路徑文件。

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

該應用程序也運行從/以及 - 不知道如果這是可取的,但它現在不是一個大問題。

+0

這工作對我來說,網站可以從/和/ myapp訪問 – Ron

相關問題