Problem mit Caching von Grafiken

Heute bin ich über ein Problem mit den Episoden-Grafiken gestolpert: Einige werden nicht mehr angezeigt. Die Cover sind alle richtig eingestellt. Die Cover liegen in der Mediathek der Wordpress-Installation und sind in Übereinstimmung mit den neuen iTunes-Regularien 3000x3000 Pixel groß. Ein Wechsel der Cover brachte keine dauerhafte Veränderung. Nach einiger Zeit verschwinden sie wieder ohne mein Zutun. Welches Cover verschwindet und welches nicht, erscheint mir sehr willkürlich (das Gedicht und der Limerick im Screenshot haben das gleiche Cover). Link zur Seite: http://geschichtenkapsel.de

Ist das ein bekanntes Problem? Gibt es eine Lösung? Was kann ich tun?

Hast du ein Caching Plugin installiert? Mal Cache leeren probieren. Ist aber nur ein kurzer Gedanke, kann auch ein anderes Problem sein.

1 „Gefällt mir“

Das ist ein eigenes Template, oder? Kannst du den Code dazu bitte posten?

@funkenstrahlen Ich habe kein eigenes Caching-Plugin installiert. Podlove cachet Grafiken aber selbst, wenn ich das richtig sehe.

@ericteubert Das sind angepasste Versionen der Overview Page und des Archiv-Templates von @timpritlove. Die funktionierten vor ein oder zwei Tagen auch problemlos. Ich habe in der Zwischenzeit nichts geändert, daher wundert mich, dass plötzlich ein Problem damit auftritt.

Overview Page

[code]{# Metaebene overview-page template v0.4 #}

{# option.group — define the contributor group to be listed #}
{# option.role — define the contributor role to be listed #}
{# contributor_column — define the contributor role to be listed #}
{# language — define the contributor role to be listed #}

{% import “metaebene-macros” as metaebene %}

{% if option.icon_size %}
{% set icon_size = icon.icon_size %}
{% else %}
{% set icon_size = ‘96’ %}
{% endif %}

{% if option.avatar_size %}
{% set avatar_size = option.avatar_size %}
{% else %}
{% set avatar_size = ‘48’ %}
{% endif %}

{#
{% if not option.role %}
{% set option.role = ‘guest’ %}
{% endif %}
#}

{% set episode_count = 0 %}
{% for episode in podcast.episodes %}
{% set episode_count = episode_count + 1 %}
{% if episode_count == 1 %}
{# Featured Episode #}

    <div class="before_title">
        <strong>Zuletzt in der Geschichtenkapsel…</strong>
    </div>

    <div class="featured-episode">

        {{ episode.player }}

		</br><em><a title="{{ episode.title }}" href="{{ episode.url }}">Zur Kapsel…</a></em>

	</div>
{% endif %}

{% endfor %}

{% if episode_count > 1 %}

<strong>Außerdem…</strong>

<div class="recent-episodes">
	<table class="recent-episodes-table">
		{% set episode_count = 0 %}
		{% set recent_episodes = 4 %}

	    <colgroup>
	        <col id="episode_icon" width="{{ icon_size + 16 }}" />
	        <col id="episode_description" />
		</colgroup>

		<tbody>
		    {% for episode in podcast.episodes %}
			    {% set episode_count = episode_count + 1 %}
			    {% if recent_episodes >= 0 and episode_count > 1 %}
			        <tr id="{{ episode.slug }}" class="archive_episode_row">
			            <td class="episode_icon">
                            <a href="{{ episode.url }}">
                                  <img class="episode_icon" border="0" src="{{ episode.imageUrlWithFallback }}" width="{{ icon_size }}" height="{{ icon_size }}">
                            </a>
                        </td>
			            <td class="episode-description">
			                <div class="recent-episode-title"><a href="{{ episode.url }}">{{ episode.title }}</a></div>
			                <div class="recent-episode-subtitle">{{ episode.subtitle }}</div>

			                <div class="episode_meta">
			                    {{ metaebene.print_date(episode.publicationDate, language) }} {{ metaebene.print_duration(episode.duration, language) }}
			                </div>
			            </td>
			        </tr>
				{% endif %}
			    {% set recent_episodes = recent_episodes - 1 %}
			{% endfor %}
	    </tbody>
	</table>
	 {% if episode_count > 5 %}
<p><em><a title="Archiv" href="/archiv/">Alle Kapseln…</a></em></p>
    {% endif %}
</div>

{% endif %}

.recent-episodes-table { border-top: 2px solid #ddd; border-bottom: 0px; border-left: 0px; border-right: 0px; } .episode_icon { vertical-align: middle; } .recent-episode-title { overflow: hidden !important; white-space: nowrap !important; text-overflow: ellipsis !important; } .recent-episode-title a { font-size: 1.0em; text-decoration: none; border: 0; font-weight: bold !important; } .recent-episode-subtitle { font-size: smaller !important; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .before_title { vertical-align: bottom; border-bottom: 2px solid #ddd !important; border-top: 0px !important; border-left: 0px !important; border-right: 0px !important; margin-bottom: 10px; } div.episode-overview { width: 100%; } div.featured-episode { padding: 12px; margin-bottom: 24px; width: 100%; } div.podlovewebplayer_wrapper { margin-bottom: 24px; width: 100%; } div.episode-contributors { float: right; margin-left: 10px; } div.recent-episode-contributors { font-weight: bold; } div.episode-footer { clear: right; } .archive_episode_row td { vertical-align: top; padding-top: 24px; padding-bottom: 24px; border-bottom: 2px solid #ddd !important; border-top: 0px; border-left: 0px; border-right: 0px; } [/code]

Archiv

[code]{# Template: podcast-archive template #}
{# Version: 1.4 #}

{# option.group - define the contributor group to be listed #}
{# option.role - define the contributor role to be listed #}
{# option.contributor_column - define the contributor role to be listed #}
{# option.icon_size - vertical size of episode icon #}
{# option.avatar_size - vertical size of avatar icon #}

{% import “metaebene-macros” as metaebene %}

{% if option.icon_size %}
{% set icon_size = icon.icon_size %}
{% else %}
{% set icon_size = ‘110’ %}
{% endif %}

{% if option.avatar_size %}
{% set avatar_size = option.avatar_size %}
{% else %}
{% set avatar_size = ‘48’ %}
{% endif %}

{% for episode in podcast.episodes %} {% include 'archivare-table' %} {% endfor %}

{% include ‘archivare-css’ %}[/code]

archivare-table

<tr id="{{ episode.slug }}" class="archive_episode_row">
            <td class="episode_icon">
                <a href="{{ episode.url }}">
                    <img class="episode_icon" border="0" src="{{ episode.imageUrlWithFallback }}" width="{{ icon_size }}" height="{{ icon_size }}">
                </a>
            </td>
            <td class="episode_description">
                <div class="episode_title"><a class="episode_title" href="{{ episode.url }}">{{ episode.title }}</a></div>
                
                <div class="episode_meta">
                    <div class="episode_subtitle">{{ episode.subtitle }}</div>
                    <div class="episode_data">
                    {{ metaebene.print_date(episode.publicationDate, language) }}<br/>
                    {{ metaebene.print_duration(episode.duration, language) }}</div>
                    
                {# contributor avatars #}
                <div class="episode_contributor_avatars">
                {% for contributor in episode.contributors({group: option.group, role: option.role}) %}
                    <a class="episode_contributor_avatars" href="/personal/{{ contributor.id }}"><img class="episode_contributor_avatars" src="{{ contributor.avatar.url }}" title="{{ contributor.name }}" height="{{ avatar_size }}" width="{{ avatar_size }}"/></a>
                {% endfor %}
                </div>

                </div>
            </td>
        </tr>

Achso: Im Webplayer werden die Grafiken auch nicht angezeigt.

Was bei mir meist hilft ist, wenn ich den Ordner /wp-content/cache/ einfach lösche. Spätestens nach dem 2. Aufruf einer Seite sollten die Caches der Plugins (incl. Podlove) sich dann wieder befüllen.

Als Quick & Dirty Lösung ist das meist der schnellste, einfachste und nicht-destruktivste Weg.

1 „Gefällt mir“

Das hat geholfen. Die Grafiken sind wieder da. Vielen Dank!

EDIT: Kommando zurück! Das Löschen des Caches hilft etwa 5 Minuten, dann ist das Problem wieder da. Im Cache-Ordner liegen allerdings alle Grafiken herum. Sie lassen sich auch über den Browser aufrufen, selbst wenn sie im Webplayer und auf der Website nicht angezeigt werden. Zwischenzeitlich habe ich versucht kleinere Grafiken zu verwenden. Das hat leider auch nicht geholfen.

1 „Gefällt mir“

Wenn sie im Ordner liegen und per Browser erreichbar sind … kann nur ein falscher Link generiert werden? Kannst du die fehlerhaften Bilder mit den funktionierenden URLs vergleichen?

1 „Gefällt mir“

Genau da scheint der Hund begraben zu liegen. Die erste Adresse ist die aus dem Link, den Wordpress versucht aufzurufen. Die zweite ist die Adresse der Datei, die tatsächlich auf dem Server liegt (Mich wundern die vielen Sonderzeichen mitten im Wort “kurzgeschichte”, hat das mit dem Problem zu tun?).

http://geschichtenkapsel.de/wordpress/wp-content/cache/podlove/99/e0707f272d0de23edfc8fbced1e257/ein-kleiner-krieg-zum-guten-zweck-kurz%C2%ADge%C2%ADschichte_original.png
http://geschichtenkapsel.de/wordpress/wp-content/cache/podlove/99/e0707f272d0de23edfc8fbced1e257/ein-kleiner-krieg-zum-guten-zweck-kurz%25c2%25adge%25c2%25adschichte_original.png

Liegt das an meinen Templates? Kann ich das selbst reparieren? Wenn ja, wie?

Das Ganze hat nicht zufällig mit diesem bekannten “Problem” zu tun?

2 „Gefällt mir“

Hm, hab ich das gleiche? http://einschlafen-podcast.de/podcast/ep-363-gesellschaftsbild-und-muedigkeit/ da sind auch auf einmal lauter Bilder kaputt… hab aber noch nicht tiefer reingeschaut.

Ich denke ich habe einen Fix gefunden. Ist nur eine Zeile. Würde mich freuen, wenn jemand der betroffenen das ausprobieren könnte: https://github.com/podlove/podlove-publisher/compare/d9f93b7da827e3e80d6ffa11e125e7246260636d...303459c3304f622fe00c7df05776bbf21d006df7

In Datei lib/model/image.php nach Z.54 folgende Zeile einfügen:

$this->file_name = str_ireplace("%c2%ad", "", $this->file_name);
1 „Gefällt mir“

Hab’s gerade eingesetzt. Ich bin vorsichtig optimistisch. Die Bilder werden jetzt alle angezeigt. Die Dateinamen im Cache sehen deutlich besser aus und haben keine Sonderzeichen mehr.

2 „Gefällt mir“

Wenn ich den Fix so ansehe (ungetestet), könnte das wirklich mit dem von mir oben geposteten Problem zusammenhängen. Das Problem könnte im generierten Dateinamen liegen.
Der Fehler ist bei mir seither nie mehr aufgetreten.

1 „Gefällt mir“

Jepp, geht, vielen Dank!

2 „Gefällt mir“