У меня есть приложение, которое написано поверх ASP.NET Core 2.2.Я использую шаблонизатор Razor для создания своего представления.
Я пытаюсь лениво загрузить свои изображения, чтобы повысить скорость загрузки на моей странице.Я хочу иметь возможность создавать теги изображений с таким образом
<img src="" class="lazy-load" data-source="~/photos/@Model.ImageName" alt="" />
Однако использование директивы tilde ~
вне тега src
не отображается правильно.Конечный результат выглядит примерно так:
<img src="" class="lazy-load" data-source="~/photos/photo1.jpg" alt="" />
Но я ищу результат, похожий на следующий или что-либо из директивы ~
.
Как я могу генерировать свои URL в теге data-source
с помощью движка Razor?
Я уверен, что можно подумать, почему бы просто не опустить ~
и вместо этого написать URL /photos/@Model.ImageName
.Причина в том, что я хочу, чтобы URL был сгенерирован после применения к ним промежуточного программного обеспечения.В этом случае я применяю заголовок срока действия кэша для каждого сгенерированного ресурса
Вот мое промежуточное ПО, которое я хочу включать каждый раз при создании URL-адреса фотографии
app.UseStaticFiles(new StaticFileOptions
{
RequestPath = "/photos",
OnPrepareResponse = ctx =>
{
const int durationInSeconds = 60 * 60 * 12;
ctx.Context.Response.Headers[HeaderNames.CacheControl] = "public,max-age=" + durationInSeconds;
}
});