【问题标题】:Images not being loaded through img tag in html图像未通过 html 中的 img 标签加载
【发布时间】:2017-05-04 23:23:46
【问题描述】:

我有一个项目,我正在尝试通过 html 文件中的 img 标签将图像添加到组件中,该文件位于 angularNode7Teste/thumbsup-jpg(应用程序根文件夹)中。组件文件位于 angularNode7Teste/src/app 文件夹中。

这是我的 app.component.html 中的代码:

<h1>
 {{title}}
</h1>

<input type="button" class="btn btn-default" value="Send" >
<img src="../../thumbs-up.jpg"/>
<div class="image"></div>

这是 app.component.css 文件:

div.image {
    content: url(../../thumbs-up.jpg);
}

&lt;img src="../../thumbs-up.jpg"/&gt;中的图片不渲染,但div标签&lt;div class="image"&gt;&lt;/div&gt;正常渲染。

两个标签中的图像是相同的,我引用同一个图像来查看它是否有效,但它没有。

【问题讨论】:

    标签: angular


    【解决方案1】:

    Angular index.html 包含 &lt;base href="/"&gt; 元素,它为您的 URL 设置基本路径。所以你需要检查这个元素href 属性值。 Angular 将此元素用于路由目的。

    关于&lt;img&gt;如果src URL 是相对的,那么就&lt;base&gt; 元素的href 值而言将是相对的。

    关于 CSS url(): URL 将与 CSS 文件相关。

    示例:

    src/assets/img/mypic.jpg 的 Angular CLI 项目中拥有一个图像。

    那么这将起作用&lt;img src="assets/img/mypic.jpg" /&gt;

    对于位于src/app/app.component.css 的 CSS 文件,以下内容有效:

    .pic {
      background-image: url('../assets/img/mypic.jpg');
      width: 256px;
      height: 256px;
    }
    

    【讨论】:

    • 您只能将图片放在 assets 文件夹中吗?我尝试将图像移动到 assets 文件夹中并在 app.component.html 文件中引用它并且它可以工作,但如果图像不在该文件夹中,它不会渲染。
    • @William 是的,所有资产都需要在该文件夹中。事实上,这可以从.angular-cli.json 配置,检查assets 属性。配置架构可用here。最后将构建应用程序,从而使用 webpack 捆绑 css 和 js 并将资产分开放置。投入生产时,您将执行ng build --prod 并且dist 文件夹将包含您可以放置​​在服务器上的构建。您可以检查该文件夹的内容,看看是否适合您。
    猜你喜欢
    • 2020-08-11
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 2014-11-13
    • 1970-01-01
    • 2017-05-04
    • 1970-01-01
    • 2014-08-06
    相关资源
    最近更新 更多