2012-06-28 58 views
1

当我调用webkit_web_view_load_string()将html内容加载到 的webkitview时,webkit始终拒绝加载html内容中引用的本地文件或资源(css,javascript,images)。使用webkitgtk加载资源+

注意:我使用GResource将资源加载到二进制文件中? 这是一个例子:

GBytes *data; 
GResource *resource; 
GByteArray* gbarray; resource = one_file_get_resource(); 

. 

。 。 。

g_resources_register (resource); 
data = g_resource_lookup_data (resource,"/com/test/resources/index.html", G_RESOURCE_LOOKUP_FLAGS_NONE,NULL); 
gbarray = g_bytes_unref_to_array(data); 
const gchar* data_char = gbarray->data; 

。 。 。

webkit_web_view_load_string(webView, data_char, NULL, NULL,""); 

这是GResources我的xml文件:

<?xml version="1.0" encoding="UTF-8"?> 
<gresources> 
    <gresource prefix="/com/test"> 
    <file>resources/index.html</file> 
    <file>resources/style.css</file> 
    </gresource> 
</gresources> 

现在我的问题是,index.html的加载,但没有css文件。我没有造型我的HTML文件!我该如何解决这个问题,谢谢?!

回答

1

你应该以某种方式告诉WebKit它是okey来加载本地资源。您可以通过使用webkit_web_view_load_uri并确保您使用file:// URI来完成此操作。否则,WebKit将假定该字符串(在load_string中)来自不受信任的源,因此不允许访问本地资源。

+1

使用file://肯定会工作,但我想要的是在构建期间将所有资源与可扩展应用程序一起嵌入。这使我能够从任何其他PC运行应用程序,而无需将资源从某个地方转移到另一个地方,这就是为什么我使用了GResoures Framework。 –