Добавление некоторых автоматических версий в CSS-файлы. Почему я не могу получить информацию о сборке?
<link rel="stylesheet" type="text/css" href="../Content/Dashboard/CustomTooltip.css?v=<%= System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).FileVersion %>" />
Пара вопросов:
- Это нормальный способ сделать это? Идея состоит в том, что когда информация о сборке наших продуктов изменяется, версия обновляется, путь к файлу CSS изменяется и делает кэш недействительным.
- Если я помещаю код C# в окно просмотра, я вижу правильную информацию о версии, но на странице.aspx она не загружается. Нет сообщения об ошибке, но он просто говорит.css? V = без версии.
Спасибо
Изменить: Кажется, это как-то связано с отражением, которое происходит. Если я говорю:
System.Reflection.Assembly.GetExecutingAssembly().GetName().Name
Я вижу правильное имя в окне просмотра, но при оценке на странице.aspx это App_Web_35 (не правильно). Есть идеи, как это исправить?
Edit2: я закончил тем, что выбрал решение, которое мне не совсем нравится, но я бы хотел услышать другие отзывы. Я просто положил:
protected string GetApplicationVersion()
{
return System.Diagnostics.FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).FileVersion;
}
на моей связанной странице CS - а затем в коде behe я назвал <% GetApplicationVersion ()%> и теперь он с радостью возвращает правильную информацию. Хотелось бы, чтобы это было встроено, хотя.
1 ответ
Решение
Файл CSS является статическим, как HTML. Подумайте о создании разных CSS-файлов и назовите это так
<link rel="stylesheet" type="text/css" href="../Content/Dashboard/CustomTooltip_<%= `System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAsse`m`bly().Location).FileVersion %>.css" />`
так что вам нужен файл CSS, как это ../Content/Dashboard/CustomTooltip_1.0.css