Поведение, которое вы испытываете, является хорошей демонстрацией того, что pushState работает. Когда вы пытаетесь обновить страницу, вы обнаруживаете, что URL даже не существует на сервере - браузер притворяется.
Если вы действительно хотите, чтобы демонстрационная программа работала на вашем сервере при обновлении страниц, избавьтесь от файла .htaccess
и скопируйте эти файлы на свой сервер:
http://html5doctor.com/demos/history/ -> /path/to/demo/index.html
http://html5doctor.com/demos/history/fluffy -> / path / to / demo / fluffy
http://html5doctor.com/demos/history/socks -> / path / to / demo / socks
http://html5doctor.com/demos/history/whiskers -> / путь / к / демо / усы
http://html5doctor.com/demos/history/bob -> / path / to / demo / bob
Теперь, когда вы просматриваете http://your.server/path/to/demo/, вы должны увидеть, как оно работает, даже если вы переходите к «пушистому» и затем обновляете страницу. (В любом случае, это работает для меня).
Кстати, этот учебник - всего лишь введение в pushState (), а не пример для подражания. Как говорит автор
Код включает в себя несколько простых стилей и динамически меняет содержимое при нажатии на ссылки. В действительности это может быть загружено с вашего сервера через XMLHttpRequest, но для целей демонстрации я собрал его в отдельный файл. Важным моментом является то, что у нас есть динамичная и быстрая страница, с которой можно работать, так что давайте начнем веселье!
Чуть лучше учебник, который вы, возможно, уже видели, это погружение в HTML5 History intro .
Однако вы, вероятно, собираетесь использовать js lib для обработки pushState, поэтому вы можете начать с них. Два из которых я наиболее знаком с:
HTMLDecor - мой проект, и он не является решением для pushState (). Просто поддержка pushState () предоставляется бесплатно (на самом деле), когда вы следуете ее рекомендациям по созданию сайта.