2017-12-18 285 views
0

我的經驗Asp.Net核心+角,我已經建立了一個項目(通過dotnet new angular),並開始申請我的管理主題。我在哪裏應該把我的資源做一個應用程序與角+ .net核心

目前我已經把我所有的主題資源直接在wwwroot文件/文件夾DIST: enter image description here

我現在遇到一個問題:

在我app.component.html我使用的一個資源(1個標誌):

<img src="dist/img/logo.png" alt="J4N Logo" class="brand-icon">

然後從我的角度得到一個錯誤:

An unhandled exception occurred while processing the request. NodeInvocationException: Prerendering failed because of error: Error: Cannot find module "./dist/img/logo.png"

我知道這是因爲角度嘗試加載它本身,並認爲這可能是某種控制器。事情是,這種logo/css/...甚至可以在角度應用程序啓動之前(例如在加載頁面中)使用,所以我不能把它放在角度應用程序文件夾中。

那麼,什麼是最好的做法,我應該在哪裏把這個類型的文件,我應該怎麼告訴角度看別處?+

+0

你可以試試'〜/ dist/img/logo.png' – George

+0

@George,試過了,但它給出了同樣的確切錯誤信息 – J4N

回答

0

把它放在你的wwwroot文件夾中。編譯時,您的dist文件夾將被替換,而wwwroot文件夾與IIS wwwroot文件夾等效。如果你把它象下面這樣:

wwwroot/ 
     www.example.com // your website, aka dist folder 
     assets/ 
      img/ 
       01.png 
       02.png 

然後鏈接到你的01.pngwww.example.com/assets/img/01.png

[編輯]:只想添加。在你的情況,讓你的圖片dist文件夾,並把它放入wwwroot。那麼你的src將是<img src="/img/logo.png" alt="J4N Logo" class="brand-icon">

+0

我直接在'wwwroot'文件夾中移動我的資源,並按照你的建議,但現在我得到這個:'NodeInvocationException:預渲染失敗,因爲錯誤:錯誤:找不到模塊「./img/logo.png」' – J4N

+0

對不起,你可以嘗試'J4N Logo'。 – lock22

+0

您是否還在使用靜態文件中間件? –

0

例如,您應該在ClientApp文件夾下創建一個名爲「assets」的資產文件夾,並將您的資源放在此處。

+0

但是,這會阻止在角度應用程序之外使用它(例如,從角度頁面的加載頁面。 – J4N

相關問題