我继承了一个iphone应用程序,它基本上是一个包含所有Web文件(html / js / css)作为资源的webview。我想将文件从项目的根目录(现在的位置)移动到子文件夹(www)。
所以,我已创建了该文件夹并将所有文件移入其中。在XCode中,我从根目录中删除了它们(它们都是红色并标记为缺失)。然后我将新文件夹添加到项目中 - 一切看起来都不错。
然后我在项目设置中检查Build Phases
内部,并且相同的文件在那里 - www文件夹中的所有.js文件显示为"编译源" (因为它们之前是从根目录开始),所有图像等都显示为"复制捆绑资源"就像以前一样。
因此,当我在模拟器上运行应用程序时(重置后),它看起来一切正常。如果我更改HTML,我也会看到更新。但是,如果我以任何方式更改js文件(在所有地方添加警报,删除所有内容,任何内容!),那么无论我做什么,我都看不到变化 - 它就像即使我再次重置模拟器,它也会从某个地方提供我的旧.js文件。
任何人都可以建议做什么?如果它有任何不同,我的网络视图代码如下:
- (void)viewDidLoad
{
[super viewDidLoad];
[imageView setBackgroundColor:[UIColor whiteColor]];
[self setWebView:webView];
[webView setDelegate:self];
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]isDirectory:NO]]];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(void)webViewDidFinishLoad:(UIWebView *)webView {
imageView.hidden = YES;
}
答案 0 :(得分:0)
一个解决方案(虽然不是很优雅)可能是用时间戳包装脚本以避免缓存。假设您的脚本位于head标签中:
<script>
document.write('<script src="yourScript.js?' + new Date().getTime() + '><\/script>');
</script>
答案 1 :(得分:0)
似乎有这个工作。
将文件夹/文件添加到项目时,如果选择Create folder references for any added folders
- 这不会将js文件添加为源,将其他文件添加为资源,而是将整个文件夹添加为资源(因此维护文件夹结构)。
然后,您只需要告诉您的webview有关index.html(或其他)的新位置
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"www]isDirectory:NO]]];
现在它正在工作:)