2017-12-18 286 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

相关问题