Используется сборка и минификация приложения ASP.NET MVC4 MVC4. Приложение должно работать и в офлайне.
Я попытался создать манифест, используя приведенный ниже код, но это не работает, поскольку параметры v= изменятся при изменении исходного кода. Как создать манифест, который работает без ручного изменения параметров строки запроса пакета, если используются связывание и минимизация?
<!DOCTYPE html>
<html manifest="~/Sale/Manifest">
<head>
@Erp.Helpers.Bundles.Render("~/css/pos", new { media = "screen" })
@Erp.Helpers.Bundles.Render("~/css/receipt", new { media = "print" })
@Scripts.Render("~/pos.js")
</head>
контроллер:
public ContentResult Manifest()
{
return new ContentResult()
{
Content = @"CACHE MANIFEST
CACHE:
pos?v=esdw2223023094323
css/pos?v=ewe3334324r33432343
css/receipt?v=w333543334324r33432343
NETWORK:
*
"
};
}
C# Web.Optimization Bundles и манифест кеша HTML5 содержит аналогичный вопрос без ответа.
Обновить
Я пробовал ответы, но получил ошибку в консоли Chrome
Application Cache Error event: Resource fetch failed (404) http://localhost:52216/erp/Sale/pos.js
Приложение работает с использованием
BundleTable.EnableOptimizations = true;
и в режиме отладки, нажав F5 из VSE 2013 для Интернета
Я попробовал предложения в ответах, используя
public class SaleController : ControllerBase
{
public ContentResult Manifest()
{
return new ContentResult()
{
Content = string.Format(@"CACHE MANIFEST
CACHE:
{0}
{1}
{2}
",
Scripts.Url("pos.js"), // tried also Scripts.Url("pos")
Styles.Url("css/pos"),
Styles.Url("css/receipt")),
... в контроллере.
просмотр источника в браузере показывает
<html manifest="/erp/Sale/Manifest">
<head>
<link href="/erp/css/pos?v=sN8iz_u3gRGE6MQKGq6KocU-SUIUMcQxKVuESa_L2l41" rel="stylesheet" media="screen"/>
<link href="/erp/css/receipt?v=C6qCUe6W1VM6yxNe-RgZRY9R0Gws1vU0lMuoKIn1uVE1" rel="stylesheet" media="print"/>
<script src="/erp/pos.js?v=a-TsureIIlzxwhaItWMV7Ajfw-YXE3x6hUld3cxwAqI1"></script>
сгенерированный манифест содержит
CACHE MANIFEST
CACHE:
/erp/Sale/pos.js
/erp/Sale/css/pos
/erp/Sale/css/receipt
Как это исправить? Похоже, что для манифеста генерируются недопустимые URL-адреса:
- Добавлен каталог распродаж
- Строка запроса отсутствует