我正在使用WKWebView
加载本地HTML。 HTML文件正在从同一位置加载main.css
文件。 CSS有效。
如果我单击一个链接,加载另一个HTML文件,让我们说dir/another.html
正在加载带有../main.css
的CSS,链接甚至都不会打开。
当我从dir/another.html
中删除CSS链接时,HTML将加载。
有人可以帮我弄这个吗? o.O
视图控制器
override func viewDidLoad() {
content.isOpaque = false
content.uiDelegate = self
content.navigationDelegate = self
let url = Bundle.main.url(forResource: result?.id, withExtension: "html", subdirectory: "location".localized)!
// result?.id is pointing to index.html at "location".localized
let request = URLRequest(url: url)
content.loadFileURL(url, allowingReadAccessTo: url)
content.load(request)
super.viewDidLoad()
}
第一个HTML index.html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="user-scalable=no, initial-scale=1" />
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div class="anything">
<a href="dir/another.html">Link</a>
</div>
...
第二个HTML dir/another.html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="user-scalable=no, initial-scale=1" />
<link rel="stylesheet" type="text/css" href="../style.css">
</head>
<body>
<div class="anything">
<a href="dir/another.html">Link</a>
</div>
...
更多信息请求:)
你是说:
content.loadFileURL(url, allowingReadAccessTo: url)
所以你限制访问这个目录(由url
表示的目录)。当您尝试访问其他目录中的资源时,您将被正确地阻止。