2016-04-28 19 views
0

In Tornado-HTML-Vorlage, eine Empfehlung zur Angabe von statischen Dateipfad ist, dass wir static_url lieber als den Pfad hart-Codierung verwenden sollten. Zum BeispielTornado: URL in externen CSS-Datei

<link rel="stylesheet" type="text/css" href="{{static_url("css/frontpage.css")}}">  

Aber es funktioniert nicht, wenn ich versuche, etwas ähnliches in der externen „frontpage.css“ Datei, wie

body { 
background-image: static_url("img/bgimg.jpg"); 
background-repeat: no-repeat;} 

Natürlich zu tun, kann ich schwer Code der Weg als "/static/img/bgimg.jpg" um dies zu vermeiden. Ich denke jedoch, dass es einen angemesseneren Weg geben sollte, damit umzugehen. Irgendwelche Vorschläge würden geschätzt!

Antwort

0

Da Ihre URL in der CSS als eine relative URL definiert ist, sollten Sie in Ordnung sein, da es relativ zur CSS-Datei sein wird. Der Grund, warum Sie static_url in der HTML-Vorlage verwenden möchten, ist, dass Sie die statischen Assets problemlos auf einen CDN oder einen anderen Webserver verlagern können, sodass sie nicht von der Tornado-Instanz geliefert werden.

+0

Der andere Vorteil der Verwendung von static_url ist, dass "die Funktion static_url basierend auf dem Inhalt der Datei einen Hash erstellt und an das Ende der URL anfügt, wodurch sichergestellt wird, dass Browser immer die neueste Version einer Datei laden sich auf eine zuvor zwischengespeicherte Version verlassen ". Angesichts seiner Auswirkungen, nur nicht so sicher über die Art und Weise zu hart codieren URL in CSS-Datei. Also sollte dies auch entsprechend geändert werden, wenn Sie später zu einem anderen Webserver wechseln? –