3

具体来说——如何在不更改原始 HTML 内容(删除目录)的情况下从它们各自的目录(images/、css/、js/)加载所有资产?

我正在使用此代码将 index.html 加载到 UIWebview 中:

NSURL *url = [[NSBundle mainBundle] URLForResource:@"index" withExtension:@"html"];
NSString *html = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];

NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];

[webView loadHTMLString:html baseURL:baseURL];

然后我的html看起来像这样:

...
<link rel="stylesheet" type="text/css" href="css/main.css" />
<script type="text/javascript" src="js/classes.js"></script>
<script type="text/javascript" src="js/animate.js"></script>
etc...

如果我删除 js/、css/ 和 images/,一切正常,因为 iOS 认为一切都在我的包的根目录中。但是,这意味着我不能跨项目使用相同的代码而不将其全部转储到一个目录中(蹩脚)。我的工程师无法处理这种混乱。

提前致谢。

4

2 回答 2

3

简单:当您将文件夹添加到 Xcode 时,请确保将它们添加为文件夹引用。

然后它们将作为文件夹添加到 .app 包中:

于 2012-10-15T22:24:05.580 回答
1

你应该能够做到这一点。需要注意的重要一点是如何将文件添加到您的项目中。通过 Xcode 添加文件时,请确保选中“为任何添加的文件夹创建文件夹引用”,而不是“为任何添加的文件夹创建组”。

参考

于 2012-10-15T22:24:39.293 回答