On Friday 01 February 2008, Stephan Beck wrote:
> Hallo,
>
> ich habe folgendes Problem:
>
> Wenn ich mittels <%= javascript_include_tag "scriptaculous" %> eine
> Javascript-Datei einbinde, erhalte ich im Sourcecode <script
> src="/snaps/javascripts/scriptaculous.js?1170931589"
> type="text/javascript"></script>
>
> Es wird also ein Zeitstempel mit angehängt.
> Leider zwingt dieser Zeitstempel den Browser diese Include zu cachen,
> wodurch die Datei bei jedem Seitenaufruf neu geladen werden muß.
Das stimmt nicht. Der Zeitstempel entspricht nicht der aktuellen
Uhrzeit, sondern der letzten Änderungszeit der Datei (auch für CSS und
Bilder). Der Browser cachet die Datei, nachdem er sie das erste Mal
geladen hat. Bei Verweisen auf bereits gecachete URLs sendet der
Browser einen "bedingten" (conditional) GET-Request, in dem der
If-Modified-Since-Header auf das letzte, dem Browser bekannte
Änderungsdatum gesetzt ist. Wenn die der URL entsprechende Ressource
nicht geändert wurde, schickt der Server den Statuscode 304 ("Not
Modified") und ein leeres Dokument zurück.
Selbst dieser Request lässt sich noch einsparen, indem der Server dem
Browser in Response-Headern mitteilt, dass bestimmte Ressourcen lange
gecachet und aus dem Cache bedient werden können.
Damit auch für derart gecachete Ressourcen Änderungen sofort wirksam
werden, also nicht die gecachte Version, sondern die aktuelle verwendet
wird, hängt Rails den Zeitstempel an. Die Version mit dem neuen
Zeitstempel ist noch nicht gecachet, wird also auf jeden Fall frisch
vom Server geladen.
Siehe auch die API-Doku zu AssetTagHelper.
> Wo und wie kann ich das Hinzufügen dieses Parameters abstellen?
Ich glaube kaum, dass das sinnvoll ist. Mit
export RAILS_ASSET_ID=""
kannst du einen eigenen, leeren "Timestamp" definieren. Für Details
schau in den Sourcecode von AssetTagHelper.
Michael
--
Michael Schuerig
mailto:[EMAIL PROTECTED]
http://www.schuerig.de/michael/
_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug