angular 4.の画像srcに問題があります。画像が見つからないというメッセージが表示され続けます。
フォルダー構造: ここ
Mycomponentで画像を使用しています。コンポーネントに直接挿入する場合
<img src="img/myimage.png"
正常に動作しますが、htmlをチェックしてハッシュを作成します。しかし、私の画像はリストの一部であるため、htmlに動的に追加する必要があります。だから、私が使用する場合:
<img src="{{imagePath}}">
これは基本的に「img/myimage.png」であり、動作しません。私が使用する場合
<img [src]="imagePath">
NOT FOUND(htttps://localhost/img/myimage.png)と表示されます。手伝って頂けますか?
AngularJS
<img ng-src="{{imagePath}}">
Angular
<img [src]="imagePath">
画像をアセットフォルダーにコピーします。 Angularは、アセットフォルダーの画像や構成ファイルなどの静的ファイルにのみアクセスできます。
このようにしてみてください:<img src="assets/img/myimage.png">
アセットフォルダーの下に画像フォルダーを作成する
<img src="assets/images/logo_poster.png">
コンポーネントで、次のような変数を割り当てます。
export class AppComponent {
netImage:any = "../assets/network.jpg";
title = 'app';
}
以下に示すように、srcでこのnetImageを使用して画像を取得します。
<figure class="figure">
<img [src]="netImage" class="figure-img img-fluid rounded" alt="A generic square placeholder image with rounded corners in a figure.">
<figcaption class="figure-caption">A caption for the above image.</figcaption>
</figure>
@Annkは、__ component.tsファイルで変数を作成できます
myImage:string = " http://example.com/path/image.png ";
__。component.htmlファイル内では、これらの3つのメソッドのいずれかを使用できます。
1.
<div> <img src="{{myImage}}"> </div>
2。
<div> <img [src]="myImage"/> </div>
3。
<div> <img bind-src="myImage"/> </div>
問題は、どういうわけか、変数によってsrcに挿入されたときにパスが認識されないことでした。このような変数を作成する必要がありました。
path:any = require( "../../ img/myImage.png");
srcで使用できます。みんな、ありがとう!
<img src="images/no-record-found.png" width="50%" height="50%"/>
画像フォルダとindex.htmlは同じディレクトリにある必要があります(次のディレクトリ構造に従ってください)。ビルド後でも動作します
ディレクトリ構造
-src
|-images
|-index.html
|-app
Angularは、アセットフォルダーの画像や構成ファイルなどの静的ファイルにのみアクセスできます。リモートに保存されたイメージの文字列パスをダウンロードしてテンプレートにロードする良い方法。
public concateInnerHTML(path: string): string {
if(path){
let front = "<img class='d-block' src='";
let back = "' alt='slide'>";
let result = front + path + back;
return result;
}
return null;
}
コンポーネントでDoCheckインターフェースを実装し、過去のデータベースの式。データベースクエリは単なるサンプルです。
ngDoCheck(): void {
this.concatedPathName = this.concateInnerHTML(database.query('src'));
}
そして、html tamplate <div [innerHtml]="concatedPathName"></div>
Angular 2、2+属性バインディングの動作に関する重要な観察。
次の操作中に[src]="imagePath"
が機能しない問題:
<img src="img/myimage.png">
<img src={{imagePath}}>
バインディング宣言が原因で、[src]="imagePath"
はコンポーネントのthis.imagePath
に直接バインドされます。または、ngForループの一部である場合は、*each.imagePath
です。
ただし、他の2つの有効なオプションでは、HTMLの文字列をバインドするか、まだ定義されていない変数にHTMLをバインドできます。
<img src=garbage*Th_i$.ngs>
をバインドする場合、HTMLはエラーをスローしませんが、Angularはバインドします。
私の推奨事項は、変数が定義されていない可能性がある場合はインラインifを使用で、たとえば<img [src]="!!imagePath ? imagePath : 'urlString'">
のようになりますが、node.src = imagePath ? imagePath : 'something'
としてもかまいません。
欠落している可能性のある変数へのバインドを避けるか、その要素で*ngIf
を十分に活用してください。
デフォルトとして画像の幅を指定する必要があります
<img width="300" src="assets/company_logo.png">
他のすべての代替方法に基づいて私のために働いています。
これを試して:
<img class="img-responsive" src="assets/img/google-body-ads.png">
画像パスを追加するには、angularでこのコードを使用する必要があります。画像が資産フォルダーの下にある場合。
<img src="../assets/images/logo.png" id="banner-logo" alt="Landing Page"/>
アセットフォルダーの下にない場合は、このコードを使用できます。
<img src="../images/logo.png" id="banner-logo" alt="Landing Page"/>
Angular.jsonに追加します
"assets": [
"src/favicon.ico",
"src/assets"
],
そして、次のように使用します:<img src={{imgPath}} alt="img"></div>
そしてts:storyPath = 'assets/images/myImg.png';
Angular-cliのデフォルトでは、ビルドオプションにアセットフォルダーが含まれています。画像の名前にスペースまたはダッシュが含まれていると、この問題が発生しました。例えば :
Asset/imgフォルダーに画像を配置すると、次のコード行がテンプレートで機能するはずです。
<img [alt]="My image name" src="./assets/img/myImageName.png'">
問題が解決しない場合は、Angular-cli構成ファイルを確認し、アセットオプションがビルドオプションに追加されていることを確認してください。
アセットフォルダーが含まれている場合は、app-> asset:[]でyour.angular-cli.jsonをチェックインします。
または多分ここに何か: https://github.com/angular/angular-cli/issues/2231 、助けることができる。