Файлы CSS управления версиями со строкой запроса как Stackoverflow делают? [дубликат]

Использовать

git log --name-status

Это покажет вам идентификатор, сообщение, файлы, измененные и измененные, созданные, добавленные или удаленные. В некоторой степени команда «все-в-одном».

18
задан mmcdole 2 February 2009 в 08:57
поделиться

4 ответа

Эта статья (пример PHP/.htaccess) объясняет идею позади него. В основном Вы могли добавить метку времени прошлого раза, когда Вы изменили файл к имени файла, но все еще служите исходному файлу. Таким образом, каждый раз, когда Вы сохраняете новую версию файла CSS, имя файла изменится, который вынудит браузер загрузить новую версию. Это будет работать на многие виды файлов, и включая CSS и включая файлы JS. (Альтернатива использованию имени файла использовала бы строку запроса.)

А образец ASP.NET - это:

public static string GetBreaker(string fileName)
{
    string cacheBreaker = null;
    try
    {
        if (fileName.StartsWith("~"))
        {
            fileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, fileName.Remove(0));
        }
        cacheBreaker = File.GetLastWriteTime(fileName).ToFileTime().ToString();
    }
    catch { }

    return string.IsNullOrEmpty(cacheBreaker) ? string.Empty : string.Format("?cachebreaker={0}", cacheBreaker);
}

И Вы называете этот метод в своем MasterPage таким образом:

<link href="<%= this.ResolveClientUrl("~/CSS/style.css") %><%=CacheBreaker.GetBreaker("~/CSS/style.css") %>"
            rel="stylesheet" type="text/css" />
5
ответ дан 30 November 2019 в 09:38
поделиться

Таким образом, Ваш браузер не кэширует файл CSS. И использование номера версии удобно, так как файл CSS, возможно, изменился в каждой версии.

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

4
ответ дан 30 November 2019 в 09:38
поделиться

Если Вы хотите знать, как это сделано, они вскоре упомянули это в предыдущей записи в блоге: это сделано автоматически их процессом сборки. Посмотрите это сообщение в блоге (3-й пункт маркированного списка).

, К сожалению, нет никаких деталей, но возможно можно получить больше информации путем комментария что сообщение в блоге или путем контакта с stackoverflow командой.

2
ответ дан 30 November 2019 в 09:38
поделиться

Было бы проще просто менять имя файла каждый раз, когда он изменяется, чтобы добиться того же эффекта.

file001.css
file002.css

У меня такое ощущение, что оставив имя файла таким же и добавив ? ver = 1234 упрощает управление исходным кодом.

-4
ответ дан 30 November 2019 в 09:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: