Сколько времени занимает загрузка ftp, чтобы показать http? - PullRequest
2 голосов
/ 14 апреля 2011

Быстрый вопрос; Я заменил файл .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, он правильный.

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

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

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

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

Ответы [ 6 ]

1 голос
/ 14 апреля 2011

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

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

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

1 голос
/ 14 апреля 2011

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

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

1 голос
/ 14 апреля 2011

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

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

1 голос
/ 14 апреля 2011

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

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

http://example.com/?345678

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

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

0 голосов
/ 29 марта 2016

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

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

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

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

0 голосов
/ 13 января 2015

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...