2016-11-14 6 views
-1

ich von einem Flask Server eine HTML-Seite mit einigen Javascript-Server versuchtPathing in HTML zu einer statischen Datei

Python-Code:

from flask import Flask 
from flask import render_template 
app = Flask(__name__) 

@app.route("/") 
def hello(): 
    return render_template('simple.html') 

if __name__ == "__main__": 
    app.run() 

Meine Auswahl sieht ungefähr wie folgt aus:

enter image description here

Die HTML-Datei, die ich rendere, befindet sich in der Vorlagen-Datei.

die JS-Datei zu laden, ich <script type="text/javascript" src="../static/js/script.js"></script>

habe ich immer einen Fehler bekommen

"browser.min.js:3 GET http://localhost:5000/script.js 404 (NOT FOUND)n.load @ browser.min.js:3s @ browser.min.js:3i @ browser.min.js:3 
browser.min.js:3 Uncaught Error: Could not load http://localhost:5000/script.js(…)s.onreadystatechange @ browser.min.js:3 

Was mache ich falsch?

+1

Sie müssen [MCVE] schaffen gebaut werden. Wo ist der Python, der den JS dienen soll? – Quentin

+0

http wird normalerweise auf Port 80 ausgeführt, nicht 5000. Die meiste Zeit, wenn es geändert wird, wird es in 8080 geändert. Haben Sie es explizit auf 5000 gesetzt? –

+0

nein, es lief nur auf 5000 –

Antwort

0

Sie müssen Pfade relativ zur URL schreiben, die vom Browser geladen wurde, nicht den physischen Pfad auf der Festplatte, auf dem sich Ihre Vorlage befindet.

Der Browser hat keine Ahnung, dass der HTML-Code in eine Datei im Verzeichnis templates geschrieben wurde; Es sieht nur HTML-Quelle hinter einer URL.

In der Regel sollten Sie immer absolute Pfade verwenden, insbesondere, wenn Ihre Vorlage von Ansichten aus mehreren Routen bedient werden kann.

+0

Ich verstehe, was Sie sagen, nur nicht sicher, wie es geht ... können Sie mir ein Beispiel geben? –

Verwandte Themen