Применять манифест кеша только в рабочем режиме

Я добавил «cache.manifest» в свое приложение (это работает отлично), и с тех пор его очень сложно отлаживать, так как я всегда должен очищать кеш или изменять версию cache.manifest.

Я попытался загрузить манифест с условием «HttpContext.Current.IsDebuggingEnabled»:

<!DOCTYPE HTML>
  @if (HttpContext.Current.IsDebuggingEnabled)
  {
    <html>
  }
  else
  {
    <html manifest="/cache.manifest">
  }

Это не работает, и Visual Studio выдает мне 3 ошибки:

  • В блоке отсутствует закрывающий символ }
  • Элемент html не закрыт
  • Не может быть более 1 элемента html.

У кого-нибудь есть идея?

Спасибо !


person wizmagister    schedule 12.04.2012    source источник


Ответы (2)


Основываясь на ответе «sav931», я наконец нашел решение:

<html @(HttpContext.Current.IsDebuggingEnabled ? "" :  "manifest=cache.manifest" )>

Нет необходимости добавлять ключ настройки приложения в web.config, так как для этого уже есть функция. (HttpContext.Current.IsDebuggingEnabled)

Кроме того, я полностью удалил атрибут manfest при разработке.

person wizmagister    schedule 03.05.2012

Попробуйте добавить ключ в web.config, например:

<add key="devMode" value="true"/>

и теперь добавьте это в свой вид:

<head @(Convert.ToBoolean(System.Web.Configuration.WebConfigurationManager.AppSettings["devMode"]) ? "manifest=/cache.manifest" : "manifest=devMode.manifest")>

добавив несуществующее имя файла манифеста, он отключит кеш...

person sav931    schedule 02.05.2012
comment
Спасибо ! Это решение работает, и я адаптировал его, используя HttpContext.Current.IsDebuggingEnabled, чтобы сделать его чище. - person wizmagister; 04.05.2012