In meiner Flaschenvorlagendatei füge ich eine CSS-Datei ein (ich habe den Textbaustein weggelassen):
url_for('static', filename='css/bootstrap.css')
Dies ergibt /static/css/bootstrap.css
, was bedeutet, dass es (wegen des führenden Schrägstrichs) als domain.com/static/css/boostrap.css
interpretiert wird. Leider befindet sich der eigentliche static
Ordner in einem Unterverzeichnis: domain.com/projects/test/static/
Umgebungsspezifische Informationen:
Meine fcgi-Datei, die sich im Ordner ~/fcgi-bin
befindet (hostspezifisch, denke ich):
und mein .htaccess in domain.com/projects/test /
%Vor% Zusammenfassend möchte ich url_for('static', filename='css/bootstrap.css')
static/css/bootstrap.css
anstelle von /static/css/bootstrap.css
Ich habe bemerkt, dass dies auch bei normalen URLs geschieht, nicht bei statischen Dateien wie URL-FOR ('about').
Ich habe eine Quickstart-App geschrieben und ein Blogbeitrag dazu.
Setzen Sie den Skriptnamen nicht auf eine leere Zeichenfolge, versuchen Sie, ihn auf "/ projects / test" zu setzen. Wenn SCRIPT_NAME auf eine leere Zeichenfolge gesetzt wird, geht die Anwendung davon aus, dass sie im Stammverzeichnis der Domäne ausgeführt wird. Die von url_for generierten Routen werden dann dort beginnen. Mit dem Skriptnamen '/ projects / test' gibt url_for('static', filename='/foo/bar.css')
'/projects/test/static/foo/bar.css'
Wenn Sie wirklich möchten, dass Ihre statischen Apps auf einem anderen Endpunkt bereitgestellt werden, müssen Sie sie nur selbst ausführen, etwa so:
%Vor%