So legen Sie HTTP-Antwort (Cache) -Header in einer auf Heroku gehosteten Sinatra-App fest

7

Ich habe eine ziemlich einfache App (nur eine index.html -Datei und eine CSS-Datei - es ist wirklich nur eine statische Seite) auf Heroku gehostet.

Ich benutze Sinatra, um es auf Heroku zu hosten. Die 'App' selbst ist ziemlich einfach:

%Vor%

Die Frage ist, wie setze ich den HTTP-Response-Header für die statischen Assets? Insbesondere wollte ich den Header Expires für Caching-Zwecke setzen.

BEARBEITEN: Ich möchte den Header zu den statischen Assets hinzufügen (dh zu dem, der sich unter /public befindet, wie Hintergrundbilder, Icons usw.)

    
ryanprayogo 27.01.2011, 07:22
quelle

2 Antworten

16

Abgesehen von der Tatsache, dass ich den Sinatra-Stack nicht nur zur Bereitstellung statischer Dateien durchgehen würde, würden Sie

anrufen %Vor%

für eine Minute zwischenzuspeichern. cache_control ist ein Helfer, der mit Sinatra kommt .

Sonst würde ich vorschlagen, dass Sie sich Ссылка ansehen, um zu sehen, wie Sinatra eingerichtet ist, damit Sie es nicht tun. Ich muss mich damit befassen, statische Dateien zu liefern.

Hoffe, das hilft.

edit: Ich habe gerade gesehen, dass Sie explizit nach dem Header Expires gefragt haben. Ich bin mir nicht sicher, aber das sollte ziemlich genau so sein wie Cache-Control . Entschuldigung für die Verwirrung

    
awendt 27.01.2011, 08:29
quelle
5

Als Erweiterung von @ awendts Antwort kann Sinatra tatsächlich statische Dateien verarbeiten, ohne dass die Route explizit definiert und die Datei gedruckt werden muss.

Durch Hinzufügen von:

%Vor%

.. Sie können Ihre index.html und stylesheet.css zu einem public/ Ordner hinzufügen. Wenn Sie http://localhost:9292/stylesheet.css besuchen, wird Ihnen die statische Datei zur Verfügung gestellt.

Wenn Sie anstelle des Standardwerts public/ einen anderen Ordnernamen verwenden möchten, versuchen Sie Folgendes:

%Vor%

Wenn wir weniger explizit sein wollen, können wir einfach den Ordner public/ erstellen, in dem Wissen, dass Sinatra :static für uns trotzdem aktiviert:)

Quelle: Ссылка

    
Nick 27.01.2011 17:05
quelle