UIWebView,带有CSS的绝对路径引用

时间:2012-05-14 15:33:21

标签: ios

我有一些在UIWebView中使用的网页,这些网页目前引用具有相对路径和绝对路径的资源,如下所示:

<link rel="stylesheet" type="text/css" href="/css/path/mycss.css"/>
<img src="myimage.png" />

HTML文件本身位于路径“/page/path/page.html”,myimage.png位于同一目录中。这些相同的页面也用于直接在浏览器中呈现,理想情况下我不想改变路径。在iPad上,网站内容会动态加载到Documents目录中以供离线查看。问题是似乎没有办法让UIWebView处理绝对路径的分辨率。我正在使用以下内容加载内容:

NSData *data = [NSData dataWithContentsOfFile:fullPath];    
[self loadData:data MIMEType:@"text/html" textEncodingName:@"utf-8" baseURL:baseURL];

如果我将baseURL指向“/ page / path”目录,UIWebView将正确找到myimage.png,但找不到mycss.css。我也尝试将baseURL指向Documents目录,但是这无法解析任何一种资源。事实上,我根本无法让UIWebView解析任何绝对路径。

有没有人能够获得使用UIWebView的绝对路径?

2 个答案:

答案 0 :(得分:0)

你是否尝试过使用类似的东西(见下文)来获取CSS的路径?

<link rel="stylesheet" type="text/css" href="../../css/path/mycss.css"/>
<img src="myimage.png" />

答案 1 :(得分:0)

为什么要在html文件中使用一些绝对路径引用?

我认为这不是一个好主意,因为您无法了解未来的用户应用程序安装路径。

例如,我的嵌入式网页位于

file://localhost/var/mobile/Applications/0E8A7BA5-8DB7-4F88-AC69-0E48F9182DD2/MyApp.app/homepage/index.html

每次删除应用程序时,0E8A7BA5-8DB7-4F88-AC69-0E48F9182DD2部件都会更改!

我认为好方法是

  • 通过选择“为任何添加的文件夹创建文件夹引用”在xCode中添加您的网站
  • 只有一些相对的话题
  • 使用:

    NSString * urlString = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"homepage"];
    NSURL * url = [NSURL fileURLWithPath:urlString isDirectory:NO];
    NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:(NSTimeInterval)10.0 ];