Как предотвратить кеширование браузера - PullRequest
3 голосов
/ 12 июня 2011

Я занимаюсь разработкой приложений для Facebook. Что-то действительно раздражает меня в том, что случайно, когда я меняю свою таблицу стилей CSS / добавляю в функцию javascript. Браузер не отражает изменения вообще. Это действительно раздражает, потому что я никогда не вижу изменений, которые я только что сделал.

Например. Я изменил свою таблицу стилей CSS, чтобы img1 переместился с 100 на 50 пикселей. Но в firfox / chrome img никогда не двигался.

Я добавил функцию javascript a () в один из моих сценариев. Но консоль браузера постоянно говорит мне, что () не определено. Я проверил через коды 10 раз, и нет ошибки.

Может кто-нибудь сказать мне, что здесь является возможной проблемой и как ее решить?

Я использую мой Mac в качестве хост-сервера.

Спасибо

Ответы [ 2 ]

5 голосов
/ 12 июня 2011

Вы можете добавить метку времени или другую уникальную строку к имени файла файлов, которые вы не хотите кэшировать, либо в текущем имени файла, либо в качестве параметра GET:

<link rel="stylesheet" type="text/css" 
      href="http://cdn.sstatic.net/stackoverflow/all.css?v=4fd8a9d8937d">

В зависимости отсерверный язык, который вы используете для сервера своих страниц, вы можете сделать что-то вроде:

PHP (используя filemtime - который возвращает время изменения файла):

<link rel="stylesheet" type="text/css" 
      href="http://cdn.sstatic.net/stackoverflow/your_css_file.css?v=<?php echo filemtime('/your_css_file.css'); ?>">

Ruby (с использованием File.mtime , который возвращает время изменения файла):

<link rel="stylesheet" type="text/css" 
      href="http://cdn.sstatic.net/stackoverflow/your_css_file.css?v=<% print File.new("testfile").mtime.to_time.to_i('/your_css_file.css'); %>">

Если выиспользуйте время изменения файла, ваши пользователи будут вынуждены загрузить файл снова, только если он был изменен.

3 голосов
/ 12 июня 2011

когда вы включаете ваши файлы js / css, включите метку времени в качестве параметра, что-то вроде этого должно сделать это:

<link rel="stylesheet" href="css/screen.css?<?php echo time(); ?>" media="all" 
type="text/css" /> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...