Почему мы не можем сохранить 100% сайта?
Мы все знаем, что мы не можем запутать HTML или Javascript. Мы должны помнить, что если браузер может читать его, пользователь должен иметь возможность читать его тоже.
Поэтому, почему иногда, когда мы загружаем сайт локально, он не работает должным образом? Это особенно верно с Javascript. Если браузер может отображать его правильно, почему он ломается, когда хранится локально? Короче говоря, что заставляет его работать локально иначе, чем в браузере?
Спасибо!
РЕДАКТИРОВАТЬ
Чтобы привести пример, я пытался скачать этот сайт:
https://www.mashape.com/howitworks
Чтобы увидеть, как они сделали анимацию, однако анимация не работает локально.
6 ответов
Причины:
Динамические страницы - иногда URL не дает вам файл, а вывод программы, которая работает на сервере. Эта программа может возвращать разные результаты каждый раз.
Javascript - точные URL-адреса, к которым может получить доступ страница, не будут известны, пока не будет выполнен весь Javascript, и, в зависимости от событий, которые его запускают, возможно, что какой-то Javascript на странице никогда не будет выполнен или будет выполняться только в определенное время и т. Д.,
Фильтрация на основе IP-адреса и т. Д. - иногда веб-сервер может выдавать вам разные данные для одного и того же URL-адреса на основе некоторого атрибута, например вашего IP-адреса и т. Д.
Чисто статические сайты без обработки на сервере всегда должны быть доступны для загрузки с помощью такого инструмента, как wget
, но эти типы сайтов становятся все более редкими.
Сайт не предназначен для скачивания. При этом очень часто зависимости повреждаются, ссылки на файлы сценариев не работают, изображения отсутствуют.
Несмотря на то, что некоторые браузеры имеют функцию загрузки всего веб-сайта, она не идеальна и обязательно приведет к сбою на динамических веб-сайтах, использующих серверные сценарии, такие как PHP.
Часто это происходит потому, что ссылки в коде HTML и / или JavaScript, включая CSS и т. Д., Все еще ссылаются на веб-сайт, а не на локально загруженные файлы. Вам нужно будет просмотреть все файлы и обновить любые ссылки, чтобы они ссылались на локальные файлы, а не на исходный сайт. Кроме того, некоторые части сайта могут быть загружены динамически, т. Е. Фактически отображаемая разметка отличается от разметки, изначально загруженной браузером. Когда вы "сохраняете" файлы из браузера, он, скорее всего, сохраняет ответ на исходный запрос, а не текущую объектную модель документа, отражающую то, что отображается в браузере.
Если вы загружаете веб-страницу, вы не обязательно загружаете связанные файлы, например изображения, CSS, Javascript. Даже если они у вас есть, вам придется изменить ссылки на них или разместить их в нужных местах, чтобы они могли работать. "/mycss.css" должен находиться в главной папке "mycss.css" должен находиться в той же папке, что и текущая страница, и т. д.
Если вы хотите загрузить весь веб-сайт (или его часть), воспользуйтесь HTTrack. Он загрузит сайт или часть сайта и изменит все зависимости для локальной работы по мере необходимости.
Щелкните правой кнопкой мыши -> View Source -> Нажмите на все файлы js/css, сохраните их. Убедитесь, что вы ссылаетесь на файлы на вашем компьютере.