html manifest 不支持,c# – Html 5 manifest不能正常工作iFrame

我有一个应用程序有几个C#项目,如下

> CRM.DomainLogic

> CRM.Web

> Warehouse.DomainLogic

>仓库网

>,…

每个Web项目如CRM.Web都有自己的“html视图”和“js控制器”

并且还有其他几种类型的静态文件.

为了方便部署,我想使用Html5清单.

所以,为了使项目分开部署,我已经使用了iframe.

由于CRM.Web的变化,客户端将获得CRM文件,并且不需要再次下载Warehouse.Web文件!

脚步:

1-我有一个Web API方法返回Web程序集的所有名称,例如CRM.Web和Warehouse.Web

2-我有另一个Web API方法,将程序集名称作为参数,并返回指向位于该项目的文件的清单文件内容.

public HttpResponseMessage GetManifestByAssemblyName(String assemblyName)

这里省略了代码.

response.Content = new StringContent(manifestBody.ToString(),Encoding.UTF8,"text/cache-manifest");

3-在客户端我为每个程序集创建一个新的iFrame,并将src设置为另一个web api方法,该方法返回html正文,将其清单分配给返回清单体的WebAPI方法的地址(GetManifestByAssemblyName)

String result = String.Format

(@" ","/api/AppManifest/GetManifestByAssemblyName?assemblyName=" + assemblyName + ".manifest");

response.Content = new StringContent(result,UTF8Encoding.Default,"text/html");

iFrames的代码:

var htmlPageUrl = "/api/AppManifest/GetHtmlContainerForManifestByName?assemblyName=" + name;

var iFrame = document.createElement("iFrame");

iFrame.setAttribute("src",htmlPageUrl);

iFrame.setAttribute("sandBox","allow-same-origin");

iFrame.setAttribute("seamless","seamless");

document.body.appendChild(iFrame);

当我运行应用程序时,它会获得程序集名称,然后创建iFrames,并且每个iFrame自动获取其自己的清单.

但是window.applicatioCache.status是0,这意味着它没有缓存.

当我去资源页面,我可以看到以下内容:

但是当我请求缓存的那些文件之一时,请求不会使用缓存.

我知道我的工作在网络上没有参考,这完全是基于我的想法,我知道一些安全限制可能会出现在这里,但有什么解决方案来解决问题?

提前致谢.

然后按Ctrl S保存文件,首先阅读Index.html注释.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值