2010-11-20 5 views
1

Got das seltsamste Problem, und es ergibt keinen Sinn. Ich habe den Code schon oft durchgespielt und versuche mit meinem Verstand herauszufinden, worum es geht. Grundsätzlich testen sie eine Website mit Firefox und Safari, sie verhalten sich anders. Dies kann für Javascript oder CSS sinnvoll sein.django Vorlage Bewertung anders auf Firefox und Safari

Dies ist jedoch Django-Code, der nicht anders bewertet. Ein einfaches Beispiel:

My Template Code:

{% if myvar == 'var1' %} 
{{ status }} 
{% endif %} 

Der Aufnahme-Tag ist ein einfacher Aufnahme-Tag, die ein paar Variablen zurück und aktualisieren den Kontext.

In Firefox, wenn myvar auswertet und zeigt Statusvariable. Allerdings funktioniert der exakt gleiche Code in Safari nicht. Es funktioniert nur, wenn Sie die Seite aktualisieren (Und nein, es wird nicht zwischengespeichert, da ich das Dummy-Caching aktiviert habe)

Wirklich das macht überhaupt keinen Sinn! Ich habe es auf einem Live-Test-Server aber kann hier nicht posten. Wenn Sie mir eine Nachricht senden können Sie URL senden.

Hat einige graben und die Version, die (Firefox) hat die folgenden zusätzlichen HTTP-Headern arbeitet, während Safari nicht (so meine Vermutung ist, es nicht für die neuere Version nicht überprüft)

‚HTTP_IF_MODIFIED_SINCE‘, HTTP_IF_NONE_MATCH , HTTP_KEEP_ALIVE

+1

Django erstellt serverseitigen Code, die Vorlagen sind einfach Orte, die ersetzt werden, bevor der Code an den Browser ausgegeben wird. Sind Sie 100% sicher, dass der Code anders angezeigt wird? Haben Sie etwas dagegen, andere Teile Ihres Codes zu teilen, zum Beispiel Aufrufe? Wir möchten sehen, mit welchem ​​Kontext Sie die Vorlage rendern. – kovshenin

+1

Vielleicht Safari verwendet Cache, der nur neu geladen wird, wenn Sie es erzwingen? –

+0

@ kvshenin, danke, ich verstehe, dass es serverseitige Code ist und an den Browser geliefert. Deshalb macht es für mich keinen Sinn. Django weiß nichts über Browser. Es generiert den HTML-Code, der an den Browser übermittelt wird. Daher sagte ich, dass es keinen Sinn ergibt. – ismail

Antwort

0

Ist myvar etwas, das Sie von einer URL geerntet haben? Vielleicht senden Firefox und Safari etwas andere Zeichenfolgen?

+0

Nop, meine Variable wird als Kontextvariable übergeben. Deshalb bin ich total verloren (Es ergibt keinen Sinn) – ismail

0

Ist es möglich, dass Sie einen Kontext-Prozessor und/oder Middleware haben, die mit Dingen mucken? Beides kann merkwürdige Probleme verursachen, die hinter dem Vorhang lauern - so etwas wie ein Netzwerkproblem und nicht das Wissen, dass eine Firewall auf Ihren Paketen kaut.

Verwandte Themen