Плитки карты не отображаются (все розовые) в Firefox с помощью OpenLayers и собственного сервера OSM
Я установил свой собственный сервер OSM для предоставления листов карты для использования в приложении. Для приложения я использую OpenLayers и пришел к странной проблеме при портировании кода из slippymap в мое приложение. В основном я использую тот же код, и для локальных плиток я настраиваю url-адрес моего сервера плиток.
проблема в том, что при переключении на локальный слой я вижу только розовый слой карты, но атрибут src тега изображения загружает фактическую плитку. Я попытался с Firebug удалить розовый слой, но за ним нет никакого изображения! При копировании url из атрибута src тега img плитка открывается как изображение.
пробовал это в Chrome, и локальный слой работает, в IE 7,8,9 тоже. Проблема только в FF, и я подозреваю что-то с OpenLayers, но не уверен, что. Слой Mapnik работает и показывает плитки во всех браузерах. Кстати, используя HTML5.
любые идеи или подсказки.2 ответов
есть еще одно решение, которое не требует добавления заголовков CORS на стороне сервера. Вам нужно предоставить опцию "tileOptions" конфигурации слоя, например:
var layer = new OpenLayers.Layer.OSM("layer name", [urls], {
"tileOptions": {
"crossOriginKeyword": null
}
});
документы OpenLayers для
Хм, я почти угадал. Это был параметр заголовка Apache, который включает междоменный запрос для предоставленных ресурсов. Вот больше информации для любопытных https://developer.mozilla.org/en/http_access_control
Это параметр заголовка, включите его в
Header set Access-Control-Allow-Origin *