Wenn Sie an einem kleinen Front-End-Projekt arbeiten und es lokal testen möchten, öffnen Sie es normalerweise, indem Sie auf Ihr lokales Verzeichnis im Webbrowser zeigen und beispielsweise die Datei /// home / erick / mysuperproject / index eingeben .html in Ihrer URL-Leiste. Wenn Ihre Site jedoch versucht, Ressourcen zu laden, selbst wenn diese in Ihrem lokalen Verzeichnis abgelegt sind, werden möglicherweise folgende Warnungen angezeigt:
XMLHttpRequest kann die Datei ///home/erick/mysuperproject/mylibrary.js nicht laden. Ursprungsübergreifende Anforderungen werden nur für HTTP unterstützt.
Chrome und andere moderne Browser haben Sicherheitsbeschränkungen für Cross Origin-Anforderungen implementiert. Dies bedeutet, dass Sie nichts über file: /// laden können. Sie müssen jederzeit das http: // -Protokoll verwenden, auch lokal aufgrund der gleichen Origin-Richtlinien. So einfach ist das: Sie müssen einen Webserver bereitstellen, um Ihr Projekt dort auszuführen.
Dies ist nicht das Ende der Welt und es gibt viele Lösungen, einschließlich des guten alten Apache (mit VirtualHosts, wenn Sie mehrere andere Projekte ausführen), node.js mit Express, einem Ruby-Server usw. oder einfach dem Ändern Ihres Browsereinstellungen.
Es gibt jedoch eine einfachere und leichtere Lösung für die Faulen. Sie können Pythons SimpleHTTPServer verwenden. Es ist bereits im Lieferumfang von Python enthalten, sodass Sie überhaupt nichts installieren oder konfigurieren müssen!
So zum Beispiel CD in Ihr Projektverzeichnis
1 cd / home / erick / mysuperproject und dann einfach benutzen
1 Python -m SimpleHTTPServer Und das war's, diese Meldung wird in Ihrem Terminal angezeigt
1 HTTP auf 0.0.0.0 Port 8000 bereitstellen ... Jetzt können Sie zu Ihrem Browser zurückkehren und http://0.0.0.0:8000alle dort bereitgestellten Verzeichnisdateien aufrufen. Sie können den Port und andere Dinge konfigurieren, lesen Sie einfach die Dokumentation. Aber dieser einfache Trick funktioniert für mich, wenn ich es eilig habe, eine neue Bibliothek zu testen oder eine neue Idee auszuarbeiten.
Los geht's, viel Spaß beim Codieren!
BEARBEITEN:
In Python 3+ wurde SimpleHTTPServer durch http.server ersetzt. In Python 3.3 ist beispielsweise der folgende Befehl äquivalent:
python -m http.server 8000