Create folder references & create group 区别
在本地加载html带css,js文件需要加载时
1.使用create group 方式引入文件,文件夹为黄色, 加载html代码如下:
html文件里面使用js,css文件,相对路劲,需要修改去掉引用./, ../../ 之类的,否则css文件无法生效, 如果多处使用了js,css,img等就需要多次修改容易出错
let filepath = Bundle.main.path(forResource: "WhiteBoardHT", ofType: "html")
self.webView?.load(URLRequest(url: URL.init(fileURLWithPath: filepath!)))
html文件
<script defer="defer" src="chunk-vendors.672038ac.js"></script>
<script defer="defer" src="app.60451670.js"></script>
<link href="chunk-vendors.ea9a733d.css" rel="stylesheet">
<link href="app.d2b833f3.css" rel="stylesheet">
2.Create folder references 方式引入文件, 文件夹为蓝色, 这种方式加载的文件不会去修改html,css,js, img路劲
image.png看看 copy bundle resource 里面是否添加了蓝色
image.png
这种方式不需要修改html,js,css文件里面的路径
如果直接使用let filepath = Bundle.main.path(forResource: "WhiteBoardHT", ofType: "html"),filepath始终为nil, 需要添加inDirectory: "assets"
正确使用代码如下
let filepath = Bundle.main.path(forResource: "WhiteBoardHT", ofType: "html", inDirectory: "assets")
let pathurl = URL.init(fileURLWithPath: filepath!)
webView?.loadFileURL(pathurl, allowingReadAccessTo: pathurl)
<script defer="defer" src="./static/js/chunk-vendors.672038ac.js"></script>
<script defer="defer" src="./static/js/app.60451670.js"></script>
<link href="./static/css/chunk-vendors.ea9a733d.css" rel="stylesheet">
<link href="./static/css/app.d2b833f3.css" rel="stylesheet">
问题1.如果直接使用[NSBundle mainBundle]查找路径,会发现路劲查找不到为空,
问题2.[_wkWebView loadRequest:request] ,这种方式加载不出来,并且这个方法不允许加载本地的html。正确的方式是用这个loadFileURL:allowingReadAccessToURL:的方法,就可以加载出html了,而且有css和js以及img的。
网友评论