我正在编写一个使用Qt / webkit显示文档的应用程序。 它们是基于XML的,XSLT应用于文档以获得最终结果 用HTML表示。
每份文件都可以参考各种资源:
该文档包含由jsMath脚本处理的数学, 它们位于系统共享区域。也有共同之处 图像和CSS样式。
每个用户都可以删除部分文档并拥有自己的文档 他的主目录中的设置,例如css styles。
最后,每个文档都附带了自己的uniq资源, 什么可以是什么 - 视频,档案或脚本。
应用程序加载文档并为每个文档知道3条路径 资源并将它们传递给XSLT以生成final 将加载到QWebView中的HTML将被呈现 为用户。
问题是我需要正确设置baseURL webview,这真的很棘手:
方案问题:windows和linux处理file:///和简单的'/'开始 URLS在不同方面有所不同,导致代码混乱(添加 窗口上的路径中的字母)
另外,我刚刚发现URL不能以Qt 4.8.0结尾的'/'结尾 此webkit产生安全性错误,抱怨跨站点脚本。 我必须在QWebSettings中设置各种安全设置 用于工作的LocalContentCanAccessFileUrls。
这些微妙的东西真的很难调试和维护,特别是当 你有跨平台的想法和各种qt / webkit版本的动物园 部署到任何地方(顺便说一句,4.7只是错误的XSLT上的段错误......)
所以,问题是:
1)考虑到我需要,使用什么作为生成HTML的基本URL 包含来自不同地方的多个资源并使用JS?
2)是否值得尝试创建组合所有的“虚拟”目录 资源使用符号链接或类似的东西? 这将解决基本网址的问题,但我不确定是否这样 Windows上提供了一些功能,并希望继续使用仅限Qt的解决方案..
当我考虑未来时,问题变得更加复杂 - 我想 能够从Web加载文档,并且仍然在本地拥有用户资源。
关于如何处理混乱的任何建议?