我在我的应用程序中使用IWebBrowser2控件,并且我有各种html文件,这些文件作为资源存储在exe中。要加载它们,我使用“res://”协议。问题是,对于某些版本的IE,页面不再加载,而只是显示“已取消操作,Internet Explorer无法链接到请求的页面。”
这些页面在.rc脚本中引用,如下所示:
stats.html HTML DISCARDABLE“res \ stats.html”
res请求看起来像 RES:// C:\路径\至\ MyApp.exe的/ stats.html时
这曾经工作得很好,在某些时候这种行为发生了变化,可能是一个热修复或类似的东西。现在,在我的机器上,它不起作用。我试过改变res路径看起来像:
RES://MyApp.exe/stats.html
没有用。
然后我尝试更改rc脚本:
统计信息HTML DISCARDABLE“res \ stats.html”
和res路径:
RES://MyApp.exe/stats
现在它有效!但是,必须使用这种方式(从资源名称中删除“。”和文件扩展名)真的很烦人。有谁知道这是一个错误吗?一项功能?为什么会发生这种情况,还有另一种解决方法吗?
编辑: 玩了一些后我发现这个工作: stats.htm HTML DISCARDABLE“res \ stats.html” RES://MyApp.exe/stats.htm
将资源名称中的“.html”扩展名更改为“.htm”,但我不明白为什么!
答案 0 :(得分:2)
确保正确设置了内容类型。确保HKEY_CLASSES_ROOT.html将其内容类型设置为“text / html”,否则会发生奇怪的事情。同样也适用于.htm。