2016-03-14 10 views
22

Ich bin gerade dabei, mit Ionic 2 zu beginnen. Ich habe eine img Datei in app erstellt, in der es eine Datei logo.png ist. So habe ich den folgenden Code erstellt:Wo gehen Bilder in IONIC 2

css:

.getting-started { 
    .logo { 
     background-image: url(./img/logo.png); 
    } 
} 

html:

<ion-col offset-33 width-33 class="logo"><h1>Logo</h1></ion-col> 
    <h3>Welcome to your first Ionic app!</h3> 

</ion-content> 

Ich weiß, dass die CSS arbeitet, als ob ich die Hintergrundfarbe wechseln, ich die erwartete bekommen Ergebnisse. Ich bekomme jedoch kein Hintergrundbild, nur den angegebenen Logotext. Wo soll ich die Bilddatei abgelegt haben?

Antwort

35

EDIT: Ab Ionic 2 RC 0, der richtige Ort, um Ihre Bilder zu setzen ist in src/assets/img/ und der richtigen Code um das Bild zu verweisen ist <img src="assets/img/myImg.png">. Bitte beachten Sie Ionics change log für RC0 (speziell # 28).


Ab jetzt, die offizielle Drifty Co. Ionic 2 Conference App als Referenz verwenden, sollten Bilder im Inneren des www/ Verzeichnis platziert werden.

In meiner aktuellen Ionic 2 App befindet sich ein Bild bei www/img/logo.png und es wird in app/pages/page_name/page_name.html als <img src='img/logo.png'> referenziert und es funktioniert wie ein Charme.

Derzeit verwenden:

  • ionisch-Winkel v2.0.0-beta.6 (package.json)
  • ionisch-native^1.1.0 (package.json)
  • ionisch-cli v 2.0.0-beta.25 (installiert CLI)
+3

Der Weg des Bildes ist auf dem Browser und dem Gerät nicht konsistent. '' funktioniert auch nicht. '' funktioniert nur im Browser, aber '' funktioniert sowohl im Browser als auch im aktuellen Gerät – Musa

+2

In meinem HTML musste ich 'assets/...' verwenden und in CSS musste ich '../ assets/... verwenden. ' – theblindprophet

+0

Ist dies relevant für Bilder, die Sie herunterladen und anzeigen müssen? –

3

www \ lib \ ionisch innen erstellen ionisch einen Ordner img jetzt Ihr Weg www \ lib \ ionisch \ setzen img Ihr Hintergrundbild in diesem img Ordner und in Ihrem

www\lib\ionic\css\ionic.css 
inside ionic.css find .view-container class and past this line. 
.view-container { 
background: url("../img/main_bg.jpg") repeat scroll 0 0/100% 100%; 
} 
+0

Danke, und wenn Sie nicht in ursprünglichen ionic.css dann in Ihrem inneren www-Faltblatt innerhalb irgendeiner css Akte VERGESSEN DIESEN CODE .scroll-Inhalt { Hintergrund: rgba (0, 0, 0, 0) url ("../ img/home -bg.png ") wiederhole Bildlauf 0 0/100% 100%; Position: absolut; –

+0

Ich habe keinen lib-Ordner in www. Ich generierte ein IONIC2-Projekt mit der Tutorial-Vorlage –

1

OK, so dass ich gefunden die Antwort auf das IONIC-Forum. Die Bilder gehen in www/img, um diese Pfade ist dann:

url('../../img/appicon.png') 

, wenn sie von CSS oder HTML in einer Seite Ordner verwiesen, die in pages in app ist.

Hoffe das hilft jedem in der Zukunft.

+0

Nun, das funktionierte beim Testen im Browser, aber nicht beim Packen der App und beim Ausführen auf einem Gerät ... –

+0

Siehe http://stackoverflow.com/questions/36292000/how-to -insert-image-in-ionic-2 für die korrekte Korrektur. –

0

Ich konnte es nicht schaffen, es mit einer PNG-Datei arbeiten zu lassen. Es funktionierte im Browser, aber wenn ich die App erstellte und auf einem Gerät bereitgestellt wurde, wurde sie nicht angezeigt.

Statt mit der Gulp-Datei von Hantieren zu verstehen, was los war, dachte ich, eine einfachere Abhilfe aus:

Inline das Bild in Ihren HTML (oder CSS) unter Verwendung einer Daten URI.

Es gibt viele Tools online wie this one, die Ihre PNG in eine Base64-Daten-URI konvertieren werden.

1

Ich hatte das gleiche Problem, ich fand einen Weg, ich weiß nicht, ob es der beste Weg ist, aber es ist Arbeit.

die Bilder auf einem Datei Geschwister zu bauen, innerhalb Ordner www

  • www
  • build
  • img
23

Mit Ionic 2 Beta 6, behandelt ich dies mit einer gehen muss einfache Schluckaufgabe. Ich habe meine Bilder in app/assets/images gelöscht (dieser Pfad ist völlig willkürlich). Dann fügte ich die folgende Aufgabe zu gulpfile.js:

gulp.task("assets", function() { 
    return gulp.src(["app/assets/images/*"]) 
     .pipe(gulp.dest("www/build/images")); 
}); 

Sie werden auch die watch und build Aufgaben aktualisieren müssen, um die neue assets Aufgabe in ihre Anrufe zu runSequence() umfassen.Ich glaube nicht, die Reihenfolge der Aufgaben in den Folgefragen, in diesem Fall:

gulp.task("build", ["clean"], function(done) { 
    runSequence(
     ["sass", "html", "fonts", "assets", "scripts"], 
     function() { 
      buildBrowserify().on("end", done); 
     } 
    ); 
}); 

Wenn Sie die Ausgabe Ihrer Bilder auf den gleichen Weg wie ich, dann würden Sie Ihre Bilder in CSS von ../images/image-name.png verweisen und in <img> Tags von build/images/image-name.png. Ich habe bestätigt, dass diese Bilder sowohl vom Browser als auch von einem Android-Gerät aus sichtbar sind. Ich denke nicht, dass es für iOS anders sein sollte.

+0

Dies sollte die akzeptierte Antwort sein. – user1275105

+0

Vereinbart, dies ist der richtige Weg, um das Problem zu beheben, nicht das unten akzeptierte. Auf diese Weise wird Ihr Projekt ordnungsgemäß erstellt, wobei nur Dateien benötigt werden, die nur Dateien im Build-Verzeichnis referenzieren. – webdevinci

+0

Wenn Sie ein Bild in den HTML-Code einfügen, benötigen Sie zum Beispiel diesen Pfad '' –

-2

Hallo Leute ich fand eine Methode, Bilder in den ionischen v2

erstellen Bilder-Ordner in "www" Verzeichnis (w ww/images /) und füge alle Bilder in diesem Pfad hinzu.

geben Sie dann Ihr Bild Pfad so ab: für Seiten src = "images/logo.png"

in CSS .ThemeColor {background: url (/images/bg.png)};

Das ist es, funktioniert für mich ..

Dank

+0

Ich würde nicht vorschlagen, die Dateien direkt in Ihr Build-Verzeichnis hinzuzufügen. Sie sollten dort als Teil des Build-Prozesses kopiert werden. – Musa

+0

Es wird ersetzt, sobald Sie einen anderen Build erstellen, und warum wird Ihr CSS "ThemeColor" genannt, wenn es ein Bild referenziert? – LeRoy

5

Das Vermögen Ordner ist der richtige Ordner alle Medien zu platzieren. Die Lage meines Bildes:

FYI: Wenn Sie den Ordner nicht haben, erstellen Sie einfach es

src > assets > img > background.png 

variables.scss

.backgroundImage { 
    background-image: url('../assets/img/background.png'); 
} 

dann auf der Seite, die ich verwenden möchten es auf:

zu Hause.html

<ion-content padding class="backgroundImage"> 

</ion-content> 

Sie können Bilder auch auf folgende Weise verweisen:

home.html

<ion-content padding class="backgroundImage"> 
    <img src="./assets/img/background.png" width="50%" /> 
</ion-content> 
1

die Lösung. Sein benutzender Pfad relativ zu index.html und nicht Vorlagenordner.

Also brauchen wir Pfad zu verwenden, ohne ../

src = "img/John_Williams.jpg"

Dies funktioniert sowohl auf Browser und apk

0

Wenn Ihr Bild Pool .jpg. Legen Sie es in /src/assets/img/pool.jpg

Es muss in diesem Verzeichnis (Assets) sein, da es Ihre Quelle ist, von wo alles gebaut wird.

Dann stoppen Sie Ihren ionischen Serve-Befehl (Strg-C) oder was auch immer Sie verwenden.

Dann löschen Sie alles unter WWW-Verzeichnis (alles wird sowieso wieder aufgebaut).

Starten Sie Ihren Server neu, indem Sie erneut 'ionic serve' ausführen.

Dadurch wird das Verzeichnis mit den Bildern neu erstellt. Sie können auf das Bild als Hintergrundbild verweisen: url ('../ assets/img/pool.jpg'); in Ihrem Code.

Ich benutze ionic 3 und es ist eine Schande, dass es Änderungen im Verzeichnis Assets nicht aufnimmt. IONIC sollte das betrachten.

0

Ich bin zur Zeit auf ionische Version 3.6 und ich hatte diese Arbeit zu verwenden: assets/img/myImagesrc="../../assets/img/myImage.jpg"

Der Weg für mich nicht funktioniert hat

Ich hoffe, das hilft