2012-11-22 3 views
6

Ich habe eine saubere Installation von Apache und PHP auf meiner CentOS6 virtuellen Maschine, ich habe auch einen freigegebenen Ordner erstellt und verwenden Sie als meine Dokumentenwurzel.Verlinkte (CSS) und Skripte aktualisieren Inhalt auf meiner VM nicht mit einem freigegebenen Ordner Dokumentstamm

Alles funktioniert perfekt, ich kann auf die Website zugreifen, alles tun, was ich tun möchte, und ich kann PHP-Dateien auf meiner Workstation bearbeiten und sie werden sofort beim Testen in einem Browser auf dem neuesten Stand sein.

Allerdings, beim Bearbeiten von CSS und JavaScript, Dateien, die "verlinkt" in der Website, stoße ich auf ein seltsames Problem, wenn sie ein nicht zwischengespeichertes Neuladen der Seite sie den Inhalt nicht aktualisieren, aktualisieren sie jedoch die Inhaltslänge.

Also, wenn ich etwas zu einem Skript hinzugefügt habe, wird es mir den gleichen Inhalt mit einer höheren Inhaltslänge geben und versuchen, dies durch Hinzufügen von unbekannten Zeichen (das Quadrat Fragezeichen Sache) zu korrigieren.

Wenn ich etwas entferne, passiert das Gegenteil, es erkennt, dass die Inhaltslänge kürzer ist und beginnt, Dinge am Ende zu entfernen.

Dies ist bei zwei sauberen Installationen passiert und ich habe versucht, Google für jemanden mit dem gleichen Problem, aber die diffuse Art des Problems macht es schwer zu definieren.

Ich habe versucht alle Apache-Konfigurationen zum Erzwingen von nicht zwischengespeicherten Ergebnissen alle ohne Glück.

Das einzige, was ich gefunden habe, um es zu zwingen, zu aktualisieren ist ein remount des freigegebenen Ordners

Wenn Sie weitere Informationen benötigen, ich bin glücklich, es zu liefern!

+1

Haben Sie zwei verschiedene Browser ausprobiert? Wenn Sie die Seite mit der ersten aktualisieren und die Änderung nicht bemerken, öffnen Sie die Seite mit der anderen und prüfen Sie, ob sie gleich aussieht oder das neue Aussehen hat. Wahrscheinlich ist es ein serverseitiger Cache. – JorgeeFG

+0

Ja, ich habe verschiedene Browser ausprobiert, beide mit dem gleichen Problem, der Inhalt wird nicht aktualisiert, die Inhaltslänge ist. –

Antwort

0

Nun, es gibt definitiv irgendwo Caching.

Meine Strategie dafür ist, die filemtime() der .css /.js-Datei an das Ende der Verknüpfung anhängen.

Sie am Ende mit Links wie

<link type='text/css' rel='stylesheet' media='screen' href='stylesheet.css?1352889543' /> 

Auf diese Weise weder der Server noch der Browser kann möglicherweise eine Datei zwischengespeichert werden, die geändert, da wurde.

+0

Ohne Erfolg, das Hinzufügen der filemtime tut nichts, das gleiche Problem besteht immer noch. Bemerkenswert ist, dass die Dateizeit aktualisiert wird, so dass zumindest php weiß, dass die Datei aktualisiert wird. –

+0

Damit werden alle Server- oder Browser-Caching-Probleme dann komplett ausgeschlossen. –

1

Während ich anfing zu vermuten, dass das Problem nicht im Cache war, waren andere Probleme etwas außerhalb meiner Reichweite, da ich nicht viel mit virtualbox gearbeitet habe.

Allerdings bemerkte ein Kollege von mir, dass vboxsf "weniger als gut" ist (nicht in diesen Worten). Wenn ich also etwas anderes zu tun hatte, war eine Suche einfacher zu definieren und presto!

https://forums.virtualbox.org/viewtopic.php?f=3&t=1940&p=6680&hilit=shared+folder+apache#p6680

was dazu führt dazu auf:

http://httpd.apache.org/docs/2.0/faq/error.html#error.sendfile

sie für mich, dieses Problem behoben deaktivieren!

Verwandte Themen