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

Antwort per Email an