Сколько времени требуется от загрузки ftp для отображения http?

#php #http #ftp

#php #http #ftp

Вопрос:

Быстрый вопрос; Я заменил файл .css, на который я ссылался в html / php, который имеет абсолютный адрес: http:/www .[мой глупый домен].com/css/div_image_container.css.

Когда я обращаюсь к нему напрямую, он выдает мне БОЛЕЕ СТАРУЮ версию файла, который я загрузил в структуру ftp. Однако на моей главной странице, используя относительный каталог, например:

 <?php
if (condition true){
    print("<link rel="stylesheet" type="text/css"
    href="/css/div_image_container.css"
    MEDIA=screen />");
}
  

Он «волшебным образом» использует правильный обновленный скрипт. Что это? Есть ли некоторая задержка между тем, когда я загружаю через ftp и когда моя страница обслуживается «правильно»?

Я использую fatcow, а они используют sftp, что не должно иметь значения.

Я просто в замешательстве. Когда я получаю доступ к файлу через ftp, он правильный.

Подождите минутку, дайте мне подумать. В FZ есть функция копирования URL. Когда я копирую URL, он выдает что-то в виде ftp://[имя домена]@ftp.[имя домена].com/css/div_image_container.css

Когда я ссылаюсь на что-либо в html без http: //, это каким-то образом всегда выполняет ftp? Но каждому пользователю на планете и за ее пределами понадобятся учетные данные или, по крайней мере, права на чтение.

В любом случае прошло более 30 минут, а http: // адрес для этого css-файла все еще содержит неправильный код.

Очевидно, что существует какое-то разделение между ftp http, очевидное по названию, но это первый случай, когда мое предположение о том, что загрузка через ftp отражается, в свое время, почти эквивалентно в «извлечении» через http, было поколеблено.

Комментарии:

1. Я предполагаю , что вы пытались очистить кэш вашего браузера .. вы уверены, что загружаете его в нужное место на сервере или даже на правильный сервер?

2. Да, Бен, хаха, но я перепроверю только для тебя. Я предполагаю, что человеческая ошибка и предположение здесь гораздо более вероятны.

Ответ №1:

это должно быть немедленно.

добавьте строку запроса, например

http://example.com/?345678

и это предотвратит кэширование,

дважды проверьте, что вы загружаете в правильное место, в противном случае поговорите со своим провайдером

Комментарии:

1. Спасибо. I… Я думал, что пытался «очистить» кэш Chrome, но, возможно, я забыл, что, скорее всего, связано с машиной. Если до этого дойдет, а мы знаем, что этого не произойдет, я поговорю со своим провайдером, но спасибо за ответ.

Ответ №2:

Скорее всего, вы столкнулись с проблемой кэширования. Обычно ресурсы кэшируются и обслуживаются из кэша в течение некоторого периода времени, прежде чем быть извлеченными снова из исходного источника. Это сделано для того, чтобы уменьшить задержку конечного пользователя (если он кэшируется локально, это намного быстрее, чем выполнение нескольких переходов, и если он кэшируется за один переход, это все равно быстрее, чем выполнение трех переходов, чтобы получить его).

На самом деле это хорошая вещь с точки зрения ускорения веб-приложений, и если вы никогда не меняете файл, вы даже можете установить срок действия кэша равным never, чтобы он всегда обслуживался из кэша. Чтобы принудительно извлечь ресурс, вы можете настроить политику кэширования так, чтобы файл никогда не кэшировался (или на очень небольшой объем); однако это повлияет на задержку для ваших пользователей. Альтернативой, которая дает вам лучшее из обоих миров, является то, чтобы вообще никогда не изменять ресурс, установить политику кэширования на кэширование на неопределенный срок, добавить уникальную подпись к имени вашего ресурса, который вы используете для управления версиями, загрузить ваш новый CSS-файл с другой подписью, а затем изменить ваш PHP-файл, чтобы указать на CSS-файл с новой подписью. Изменение имени ресурса приведет к принудительному извлечению ресурса (поскольку имя отличается от того, которое было кэшировано), но политика «кэшировать вечно» ускорит последующие загрузки.

Комментарии:

1. Ааааа, я понял. Этот ответ Surreal создает впечатление, что это сделано в промышленности, плюс тот факт, что это имеет смысл, и поэтому я начну это делать. Спасибо, джентльмены.

2. Просто попробовал это, и идея соединилась с моим ограниченным опытом работы на Java с subversion и т.д.; это работает невероятно хорошо. БОЛЬШОЕ ВАМ СПАСИБО, РЕБЯТА! ~ Новичок

Ответ №3:

Согласен с проблемой кэширования.

Быстрое и грязное решение — удалить вызывающий php-скрипт (и иногда связанные файлы), вызвать URL из вашего браузера (вызывая ошибку 404), затем повторно загрузить файл скрипта. Затем он должен быть свежим.

Ответ №4:

Я также уверен, что это проблема с кэшированием. Простой способ предотвратить кэширование — каждый раз добавлять уникальный параметр к имени вашего CSS-файла. Вы можете создать базовый и предсказуемо уникальный параметр, подобный этому:

 <?php
if (condition true){
    print("<link rel="stylesheet" type="text/css"
    href="/css/div_image_container.css?" . time() . ""
    MEDIA=screen />");
}
  

Это добавит временную метку Unix к имени файла CSS в качестве параметра, предоставляя новый параметр каждую секунду. Пока вы не загружаете страницу чаще, чем это требуется, ваш браузер не попадет в кэш при загрузке таблицы стилей.

Комментарии:

1. Хм, я вижу, что вы там сделали, и я никогда об этом не думал. Спасибо SD и всем.

Ответ №5:

Я знаю, что это старая тема, но я наткнулся на нее, когда столкнулся с аналогичной проблемой, и подумал, что моя информация может помочь кому-то еще:

Из моего обращения в службу поддержки fatcow: «Спасибо, что связались с нами.

Похоже, проблема в кеше varnish, поскольку мы используем технологию кэширования Varnish на нашем сервере. Ограничение по времени кэширования Varnish по умолчанию установлено на наших серверах равным 4 часам. Таким образом, ваш веб-сайт может не отображать изменения немедленно. Для повышения производительности я отключил кэш по адресу:https://www.fatcow.com/controlpanel/cachecontrol / . «

Ответ №6:

Я хотел бы добавить, что у меня только что был такой же опыт, и это явно было связано с кэшированием сервера.

Я отредактировал один атрибут в своей таблице стилей вручную через FileZilla, затем сохранил его. Когда я перешел на реальную текущую страницу, ничего не изменилось. Даже когда я обновил FTP-соединение и просмотрел файл, подтвердив, что атрибут присутствует на 100%, страница отображала вывод старого файла. Это просто не отражалось на реальном сайте.

Затем: Три часа спустя я вернулся на сайт, и о чудо, элемент страницы, к которому я добавил атрибут, изменился.

Я не профессионал (пока), поэтому не могу дать много подробностей в своем ответе. Тем не менее, мой единственный источник — это специалист, который обучает меня / помогает мне настроить наш веб-сайт. Ранее в процессе он отметил, что у нашего хостинг-провайдера, похоже, очень агрессивное кэширование. Я могу только предположить, что это причина задержки в обновлении моего файла.