次のように構成されたHTMLページがあります。
<html>
<head>
<link rel="stylesheet" href="/style.css" />
</head>
<body>
</body>
</html>
これはマイドキュメントディレクトリに保存されています。
/Users/username/Library/Application Support/iPhone Simulator/5.1/Applications/12345-ID/Documents/mysite/index.html
また、style.cssをdocumentsディレクトリに保存しました。
/Users/username/Library/Application Support/iPhone Simulator/5.1/Applications/12345-ID/Documents/mysite/style.css
しかし今、これを使用してhtmlをWebビューにロードしようとすると:
NSURL *test = [NSURL URLWithString:@"file:///Users/username/Library/Application Support/iPhone%20Simulator/5.1/Applications/12345-ID/Documents/mysite/"]
[myWebView loadHTMLString:<the content retrieved from index.html> baseURL:test];
cssがロードされていません。NSURLProtocolを使用してスタイルシートへのリクエストをインターセプトすると、リクエストが間違っていることがわかります。それは要求しようとしています:
file:///style.css
完全なbaseURLの代わりに。これで、htmlファイルの/style.cssの前にある/を削除することでこれを解決できます。しかし、HTMLを変更せずにネイティブコードでこれを解決する簡単な方法はありますか?