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.)
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
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:
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: Ссылка
Tags und Links ruby caching heroku sinatra http-headers