CSS Fehler bei Darstellung mit dem Headerlogo (Bild wird nicht gefunden..)

  • Liebe Gemeinde,
    ich bin neu in diesem Forum und habe ein Problem, dass ich nicht verstehe. Bin auch noch nicht so geübt wie viele andere.
    Ich habe ein Wordpresstemplate erstellt, das funktioniert auch, aber ich habe ein Problem, dass ich obwohl der Pfad richtig (glaube ich;-)) ist die ".png" im Header nicht angezeigt wird. Wenn ich im Editior auf mit der Maus auf den Pfad gehe zeigt er das Bild auch an. Im Inspektor (chrome) wird die Grafik als "404" nicht gefunden angezeigt.
    Irgendwo habe ich wahrscheinlich eine logische Reihenfolge durchbrochen oder etwas aufgehoben, dass ich nicht finden kann. Das Hintergundbild liegt im gleichen Ordner, dass wird auch angezeigt, daher gehe ich davon aus, dass der Pfad des Bildes auch richtig ist. Danke für eure Mühe!!!

    HTML
    <!DOCTYPE html><html lang="<?php bloginfo('language');?>">  <head>    <meta charset="<?php bloginfo('charset');?>" />    <meta name="viewport" content="width=device-width, initial-scale=1.0" />                <title><?php wp_title('');?><?php bloginfo('name');?></title>          <link rel="stylesheet" href="<?php bloginfo('template_url');?>/css/normalize.css">    <link rel="stylesheet" href="<?php bloginfo('stylesheet_url');?>">       <?php wp_head();?>  </head>  <body>     <div class="container">    <header class="site-header">             <a class="logo-home" href='<?php echo home_url('/');?>'>                         </a><img border="0" alt="Logo Dachdecker Appel" src="img/logo-appel.png" width="100" height="100">        <?php get_template_part('template_parts/navi'); ?>    </header>
  • Ein CSS Fehler wird das nicht sein.
    Wenn dir der Browser einen 404 Fehler zeigt, dann wird er wohl Recht haben... die Datei existiert am angegeben Pfad nicht oder der Dateiname ist falsch (auch Groß- und Kleinschreibung beachten)
    Wie hast du die Bilddatei hochgeladen? Per FTP oder in die Mediathek von Wordpress?
    Wie sieht der ausgelieferte Quellcode im Browser aus - welcher Pfad wir dort angegeben?
    Mit einem Link zur Seite könnte man sicher besser erkennen, was los ist. Dieser WP Code ist so ohne weiteres nicht wirklich hilfreich.

    if(!sleep)

    {$sheep++;}

  • Ich entwickle das lokal und habe die Wordpressumgebung über MAMP laufen.
    Die Datei liegt daher im localhoast... wp_content/Theme/"mein Theme"/img/jetzt das Bild

    HTML
    </head>  <body>     <div class="container">    <header class="site-header">             <a class="logo-home" href='http://localhost/'>                         </a><img border="0" alt="Logo Dachdecker Appel" src="img/logo-appel.png" width="100" height="100">        <nav class="site-nav">                 impressum  Datenschutz                </nav>    </header>             <main class="site-main">                                  <article class="site-content"class="post-2 page type-page status-publish hentry">                        <h2>Diese Webseite wird aktuell überarbeitet</h2>    <p>Wir bitten um ihr Verständnis und bitten Sie zu einem späteren Zeitpunkt wieder zu kommen.<br />Über die Kontaktleiste rechts können Sie uns gerne per Mail oder telefonisch kontaktieren</p><p>Ihr Team</p><p>Dachdeckerei Appel und Schulz</p>      .    </article>                                <aside class="site-sidebar">        <li id="text-2" class="widget widget_text"><h2 class="widgettitle">Kontakt</h2>			<div class="textwidget"><p>Dachdeckerei<br />Appel und Schulz GmbH<br />Tunnelweg 17<br />45549 Sprockhövel</p><p>Tel.  0202 – 708702<br />Fax. 0202 – 705728<br />Mail: info@dachdeckerei-appel.de</p></div>		</li><li id="calendar-2" class="widget widget_calendar"><div id="calendar_wrap" class="calendar_wrap"><table id="wp-calendar">	<caption>Juli 2018</caption>	<thead>	<tr>		<th scope="col" title="Montag">M</th>		<th scope="col" title="Dienstag">D</th>		<th scope="col" title="Mittwoch">M</th>		<th scope="col" title="Donnerstag">D</th>		<th scope="col" title="Freitag">F</th>		<th scope="col" title="Samstag">S</th>		<th scope="col" title="Sonntag">S</th>	</tr>	</thead>
    	<tfoot>	<tr>		<td colspan="3" id="prev" class="pad">&nbsp;</td>		<td class="pad">&nbsp;</td>		<td colspan="3" id="next" class="pad">&nbsp;</td>	</tr>	</tfoot>
    	<tbody>	<tr>		<td colspan="6" class="pad">&nbsp;</td><td>1</td>	</tr>	<tr>		<td>2</td><td>3</td><td>4</td><td>5</td><td><a href="http://localhost/2018/07/06/" aria-label="Beiträge veröffentlicht am 6. July 2018">6</a></td><td>7</td><td id="today">8</td>	</tr>	<tr>		<td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td>	</tr>	<tr>		<td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td>	</tr>	<tr>		<td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td>	</tr>	<tr>		<td>30</td><td>31</td>		<td class="pad" colspan="5">&nbsp;</td>	</tr>	</tbody>	</table></div></li></aside>    </main>        <footer class="site-footer">        <p>Copyright by andagentur 2018</p>    </footer>    </div>  <script type='text/javascript' src='http://localhost/wp-includes/js/wp-embed.min.js?ver=4.9.7'></script>  </body></html>

    Danke für deine Antwort
    LG
    Alex

    - - - Aktualisiert - - -

    Ich habs gefunden!!!!!!!!!!!
    und zwar habe ich das "background-image" vom body wie folgt angegeben.

    url(img/background.png); Das bild wird angezeigt
    url(img/logo-appel.png); Das bild wird nicht angezeigt
    Nachdem ich den Pfad in Chrome Developer Tool untersucht habe, habe ich festgestellt, dass das Background folgenden Pfad hat:
    http://localhost/wp-content/the…/background.png, das andere Logo aber nicht obwohl es im gleichen Ordner liegt..
    Kannst Du mir das erklären????
    nun habe ich im Link den Pfad so aufgebaut, wie er beim Developer tool für das Background ausgegeben wurde und tadaaa das Logo im Header wird angezeigt.
    Die Logig dahinter verstehe ich nicht.
    LG
    Alex

  • Diese Logik kann dir wahrscheinlich auch nur ein ein WP Insider durchschauen. Macht aber wohl einen Unterschied, ob Bilder als Teil des Themes mittels eines Shortcodes oder manuell eingefügt werden. Erklären kann ich das aber auch nicht.

    if(!sleep)

    {$sheep++;}

  • Also wenn ich dich richtig verstehe, wird die Background Grafik in der CSS Datei des Themes definiert und deine logo-appel.png hast du als <img> in deinem Template verwendet und die Grafik logo-appel.png liegt im Ordner "wp-content/themes/DeinTheme/img" – richtig?

    Aktuell:

    HTML
    <img border="0" alt="Logo Dachdecker Appel" src="img/logo-appel.png" width="100" height="100">

    Versuch mal:

    PHP
    <img border="0" alt="Logo Dachdecker Appel" src="<?php echo get_template_directory_uri(); ?>/img/logo-appel.png" width="100" height="100">

    Hintergrundwissen: https://developer.wordpress.org/reference/func…_directory_uri/

    Das ist quasi völlig normales und korrektes Verhalten ;)

    Das "Thema" dahinter nennt sich "Relative Pfade" bzw. "Absolute Pfade". Indem du src="img/logo-appel.png" in deinem Template verwendest schaut der Browser "relativ" zu der Seite auf der er sich befindet in diesen Pfad, d.h. befindet man sich auf der Seite http://www.example.com/ueber-uns so wird der Browser im Ordner http://www.example.com/ueber-uns/img/logo-appel.png versuchen die Grafik zu finden. Befindet man sich auf http://www.example.com/ueber-uns/geschichte so wird der Browser im Ordner http://www.example.com/ueber-uns/gesc…/logo-appel.png nach dem Bild suchen. Was natürlich wenig erfolgsversprechend ist.

    Daher kannst du es dir in solchen Fällen leicht machen, wenn du in deinen Templates auf eine Datei zugreifen willst die sich in deinem Theme Ordner befindet und diesen Befehl nutzen <?php echo get_template_directory_uri(); ?> welcher automatisch für den Korrekten "absoluten" Pfad sorgt. Da der vollständige Pfad in deinen ThemeOrdner ausgegeben wird. Ist die elegantere Variante zu deiner Lösung es manuell/hart in den Code zu schreiben.

    Innerhalb der CSS Datei funktiniert diese "relative" Pfadangabe, da sich die Background-Grafik "realtiv" zur CSS-Datei im Ordner /img befindet aus der sie aufgerufen wird.

    /meinTheme/style.css » relativ dazu wird an den Pfad in dem sich die Datei befindet /img angehanden » /meinTheme/img/background.png


    Ich hoffe das war halbwegs verständlich ;)

    13 Mal editiert, zuletzt von egado (15. Juli 2018 um 03:26)