【发布时间】:2010-11-03 22:24:12
【问题描述】:
我的 iPhone 应用中有一些 HTML 和一些图片,排列如下:
html/
foo.html
images/
bar.png
我可以通过几种不同的方式让bar.png 出现在我的UIWebView 中——或者从NSUrl 加载foo.html,然后从html 目录返回目录树:
<img src="../images/bar.png"/>
或通过将foo.html 加载到字符串中,使用loadHtmlString,并使用[[NSBundle mainBundle] bundleURL] 作为baseURL:
<img src="images/bar.png"/>
不过,这两种情况都有些笨拙——在第一种情况下,如果我移动 HTML 文件,我必须重新调整所有相对路径,而在第二种情况下,我必须忽略HTML 文件。
我想做的是这个——
<img src="/images/bar.png"/>
-- 将bundleURL 视为“站点”的根。有什么办法可以完成这项工作,还是我注定要翻译成file:///images/bar.png并且找不到文件?
【问题讨论】:
-
我想做同样的事情。你有没有找到解决这个问题的方法?
-
我会问,因为那是几年后的事了:你有没有找到一种在 iOS 文件系统中使用相对于根目录的 URL 的好方法?除了运行本地网络服务器之外,我还没有找到一种健全的方法来做到这一点——我什至很乐意通过重写 UIWebView 的请求来破解这些东西,只要有这样做的地方。
-
很遗憾,没有,但我已经有几年没有做 IOS 开发了。
-
@DavePeck 我想我看到了一种实现这一点的方法,而无需像自定义 Web 服务器这样的黑客攻击 :)。需要使用 NSURLProtocol 实现自定义架构或重定向,一旦我有好的解决方案,我会发布答案。