在使用OpenLayers和自己的OSM服务器的Firefox中,地图分幅不显示(全部为粉红色)

在使用OpenLayers和自己的OSM服务器的Firefox中,地图分幅不显示(全部为粉红色),firefox,openlayers,openstreetmap,Firefox,Openlayers,Openstreetmap,我已经设置了自己的OSM服务器,用于提供应用程序中使用的地图分幅。对于应用程序,我使用OpenLayers,在将代码从SliplyMap移植到我的应用程序时遇到了一个奇怪的问题。基本上,我使用相同的代码,对于本地磁贴,我设置了我的磁贴服务器的url 问题是,当切换到本地层时,我只看到贴图的粉红色层,但图像标记的src属性加载实际的平铺。我试着用Firebug移除粉色层,但在它后面没有图像!从img标记的src属性处理url会将互动程序作为图像打开 在IE 7、8、9中,尝试使用此方法进行镀铬,并

我已经设置了自己的OSM服务器,用于提供应用程序中使用的地图分幅。对于应用程序,我使用OpenLayers,在将代码从SliplyMap移植到我的应用程序时遇到了一个奇怪的问题。基本上,我使用相同的代码,对于本地磁贴,我设置了我的磁贴服务器的url

问题是,当切换到本地层时,我只看到贴图的粉红色层,但图像标记的src属性加载实际的平铺。我试着用Firebug移除粉色层,但在它后面没有图像!从img标记的src属性处理url会将互动程序作为图像打开

在IE 7、8、9中,尝试使用此方法进行镀铬,并且局部层正在工作。问题只在于FF,我怀疑OpenLayers有问题,但不确定是什么。Mapnik层正在所有浏览器上工作并显示平铺。顺便说一下,使用HTML5


任何想法或提示都将不胜感激。

嗯,我几乎猜对了。它是一个Apache头设置,支持跨域请求所提供的资源。这里有更多的信息给好奇的人

这是标题设置,请将其包含在或.htaccess文件中,并检查是否已启用mod_标题

Header set Access-Control-Allow-Origin *

还有一种解决方案不需要在服务器端添加CORS头。您需要为图层配置提供一个“tileOptions”选项,如下所示:

var layer = new OpenLayers.Layer.OSM("layer name", [urls], {
    "tileOptions": {
        "crossOriginKeyword": null
    }
});

OpenLayers文档提供并告诉您如何执行此操作,但没有提到默认设置可能会导致Firefox出现问题的事实。

对于任何其他在查看从()提供的包的测试页面时发现此页面存在相同问题的人(“为什么我只得到粉红色的平铺”),有两件事需要注意:1)照柯德上面说的做。2) 在首选编辑器中打开示例页面(/var/osm/sliptymap.html),并在第44行找到的url中更改域。仅当您计划在另一台计算机上查看示例页面时,才需要执行此步骤(因为localhost不起作用)。谢谢你的帮助,科德!