Если вы работаете над небольшим интерфейсным проектом и хотите протестировать его локально, вы обычно открываете его, указывая свой локальный каталог в веб-браузере, например, вводя file: /// home / erick / mysuperproject / index .html в адресной строке. Однако, если ваш сайт пытается загрузить ресурсы, даже если они размещены в вашем локальном каталоге, вы можете увидеть такие предупреждения:
XMLHttpRequest не может загрузить файл: ///home/erick/mysuperproject/mylibrary.js. Запросы с перекрестным источником поддерживаются только для HTTP.
Chrome и другие современные браузеры реализовали ограничения безопасности для запросов Cross Origin, что означает, что вы не можете загружать что-либо через file: ///, вам необходимо использовать протокол http: // всегда, даже локально - из-за политик Same Origin. Все просто, вам нужно будет смонтировать веб-сервер для запуска вашего проекта там.
Это не конец света, и существует множество решений, включая старый добрый Apache (с VirtualHosts, если вы запускаете несколько других проектов), node.js с express, сервер Ruby и т. Д. Или просто изменение вашего настройки браузера.
Однако для ленивых есть более простое и легкое решение. Вы можете использовать Python SimpleHTTPServer. Он уже идет в комплекте с python, поэтому вам вообще не нужно ничего устанавливать или настраивать!
Итак, перейдите в каталог вашего проекта, например
1 cd / home / erick / mysuperproject, а затем просто используйте
1 python -m SimpleHTTPServer И все, вы увидите это сообщение в своем терминале
1 Обслуживание HTTP через порт 0.0.0.0 8000 ... Итак, теперь вы можете вернуться в свой браузер и посетить http://0.0.0.0:8000все файлы вашего каталога, обслуживаемые там. Вы можете настроить порт и прочее, достаточно посмотреть документацию. Но этот трюк у меня работает, когда я тороплюсь протестировать новую библиотеку или разработать новую идею.
Готово, удачного кодирования!
РЕДАКТИРОВАТЬ:
в Python 3+ SimpleHTTPServer был заменен на http.server. Так, например, в Python 3.3 эквивалентна следующая команда:
python -m http.server 8000