#javascript #ubuntu #window.location
Вопрос:
Я создаю веб-приложение. Только что произошло что-то очень странное. Я программировал страницу в одной папке, а затем захотел протестировать свое приложение с самого начала. Этот код, который работал всего полчаса назад, перестал работать:
window.location = "/navigation/navigation.html";
Я ничего не переименовывал и не менял первый файл .js. Я использую Linux Ubuntu и Google Chrome для просмотра своих работ. Что-то изменилось в системе? Что я должен сделать, чтобы решить эту проблему?
Первая программа .js находится в папке входа в систему, перенаправляя ее в папку навигации.
Комментарии:
1. Есть ли какие-либо ошибки в консоли?
2. «crbug / 1173575, файлы модулей, отличные от JS, устарели».
3. Но нет ошибки, когда он пытается выполнить
window.location
назначение? Что-нибудь отображается на вкладке Сеть?
Ответ №1:
Короткий плохой ответ:
Используйте это.
window.location = "./navigation/navigation.html";
Длинный хороший ответ:
Это зависит от используемого вами веб-сервера.
Если вы используете nginx / apache, с root, установленным для папки, в которой navigation.html ложь, тогда абсолютный путь "/navigation/navigation.html"
работает просто отлично.
Если вы просто дважды щелкаете HTML-файл, вам нужно использовать относительный путь следующим образом:
window.location = "./navigation/navigation.html";
Постарайтесь создать согласованную среду для разработки. Самый простой сервер, который вы можете настроить http-server
, — это пакет npm, который вы можете установить с помощью:
sudo apt install npm
npm install -g http-server
а затем используйте следующим образом:
cd /folder/of/your/project
http-server # command hangs this terminal!
затем открытие localhost:8080
в вашем веб-браузере. Тогда все пути внутри вашего веб-приложения будут абсолютными по отношению к папке, в которой вы запустили http-server
команду. Например, вы можете получить доступ /folder/of/your/prjoect/navigation/navigation.html
, введя URL localhost:8080/navigation/navigation.html
.
Если вы готовы принять вызов, попробуйте установить и использовать nginx
вместо простого http-server
. Это дает вам гораздо больше возможностей, в том числе возможность запускать серверный код. Вы можете установить его с помощью apt и узнать, как его использовать, здесь: https://nginx.org/en/docs/beginners_guide.html