2013-09-16 12 views
0

У меня есть вопрос веб-разработки.Новая веб-страница не отображается

Иногда, если я помещаю новую версию веб-страницы на веб-сервер, и я перехожу к этой веб-странице, новая страница не отображается. Вместо этого отображается старая страница с кэшированной страницы из предыдущего просмотра на веб-страницу.

Как я могу всегда показывать новую страницу? Есть ли какой-то тэг, который я могу использовать для этого?

+0

Проверьте свои кеширующие HTTP-заголовки. – SLaks

ответ

0

Есть некоторые признаки, которые Вы можете использовать

См http://www.i18nguy.com/markup/metatags.html

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE"> 
<META HTTP-EQUIV="EXPIRES" CONTENT="0"> 
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> 

Есть похожие HTTP заголовки, которые веб-сервер может установить, как хорошо.

+0

Возможно ли через тег проверить, является ли дата страницы более новой, чем кешированная версия, и если да, перезагрузите страницу? Если это не будет сделано по умолчанию? – Simon

+0

@Simon: Да; вы должны настроить ваш сервер для правильной установки заголовков кэша «Last-Modified» или «ETag» и установки 'Must-Revalidate'. – SLaks

0

Да, вы не можете указать кеширование и как долго кэшировать отдельные файлы в .htaccess, если вы используете Apache. Как правило, вы отключите кеширование на динамическом контенте и установите ограничения кэширования на обычную скорость обновления изображений и статический html. На моем сайте я регенерировать статический HTML каждый день, поэтому установил кэширование до 24 часов на .html и отключенное кэширование на PHP скриптах (эти ограничения указаны в секундах - 1 день = 86400 секунд):

# Set up caching on media files for 1 week 
<FilesMatch "\.(gif|jpg|jpeg|png|js|css)$"> 
ExpiresDefault A604800 
Header append Cache-Control "public" 
</FilesMatch> 



# Set up 1 Day caching on site generated files 
<FilesMatch "\.(xml|txt|html)$"> 
ExpiresDefault A86400 
Header append Cache-Control "proxy-revalidate" 
</FilesMatch> 

# Force no caching for dynamic php 
<FilesMatch "\.php$"> 
ExpiresActive Off 
Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform" 
Header set Pragma "no-cache" 
</FilesMatch> 

Если вы просто испытывают проблемы с тестированием изменений в ваших html-файлах, помните, что вы обычно можете заставить браузер перезагружать страницу независимо от настроек кеша - [Ctrl] [F5] под Windows.

0

Вы можете изменить поведение кэширования с помощью настроек веб-сервера или напрямую установить в заголовках http. В данной статье описывается, как вы можете сделать это для IIS: http://support.microsoft.com/kb/247404/en-us

-1

Я думаю, что сервер до сих пор не обновил сайт. Просто подождите и проверьте, обновляется ли он.

+0

Я жду, но старая страница все еще отображается. Если я обновляю страницу вручную, отображается новая страница. – Simon

+0

Возможно, задержка сервера? – Haiz

Смежные вопросы