Laden von Stylesheets in Sinatra

8

Ich benutze Sinatra, und ich habe versucht, einige Stylesheets zu laden. Ich habe gerade das normale html link -Tag in meinem erb versucht, aber das hat nicht funktioniert.

ive versuchte

%Vor%

Es ist kein Problem mit der URL, die ich verwende, gibt es eine spezielle Möglichkeit, dies zu erreichen?

    
OneChillDude 09.09.2012, 15:22
quelle

1 Antwort

12

Wenn Sie href="style.css" verwenden, geben Sie eine relative Verknüpfung zum Stylesheet an. Der tatsächliche Pfad, den Ihr Browser anfordert, hängt von der URL der aktuellen Seite ab, also zum Beispiel wenn Sie eine Route wie:

haben %Vor%

Dann sucht der Browser nach dem Stylesheet unter /things/style.css . Dies funktioniert natürlich nicht, wenn sich Ihr Stylesheet in Ihrem public Verzeichnis auf der obersten Ebene befindet.

Die schnelle Lösung besteht darin, einen absoluten Pfad zu Ihrem Stylesheet zu verwenden: href="/style.css" (beachten Sie das / -Zeichen). Dadurch wird der Browser immer nach dem Stylesheet im Stammverzeichnis des Servers suchen.

Dies setzt voraus, dass Ihre Anwendung immer im Stammverzeichnis des Servers angemeldet ist und fehlschlägt, wenn Sie sie in einem Unterverzeichnis ausführen. Sie möchten sagen können: "Suchen Sie im Stammverzeichnis dieser Anwendung nach dem Stylesheet, egal wo es gerade ist". In Sinatra können Sie dies tun, indem Sie die url Hilfsmethode verwenden. Mit ERB als Vorlagensprache würde dies wie folgt aussehen:

%Vor%

Dadurch wird sichergestellt, dass der Link zu style.css immer korrekt ist, wo auch immer sich Ihre App befindet.

    
matt 09.09.2012, 17:33
quelle

Tags und Links