2015-11-13 3 views
-1

Это сводит меня с ума. Я пытаюсь заставить skybox работать с изображениями, которые я получил из Интернета. Мой код:Проблема с перекрестным выпуском Загрузка изображений для skybox

В глобальных переменных:

var path = "file:///C:/Users/Tyler/Desktop/ComS_336_workspace/"; 
    var imageNames = [ 
         path + "meadow_bk.jpg", 
         path + "meadow_ft.jpg", 
         path + "meadow_up.jpg", 
         path + "meadow_dn.jpg", 
         path + "meadow_rt.jpg", 
         path + "meadow_lf.jpg" 
         ]; 

В главной функции:

// load the six images 
     //THREE.ImageUtils.crossOrigin = "Anonymous"; 
     var ourCubeMap = THREE.ImageUtils.loadTextureCube(imageNames); 

Но получить эту ошибку:

DOMException: Failed to execute 'texImage2D' on 'WebGLRenderingContext': The cross-origin image at file:///C:/Users/Tyler/Desktop/ComS_336_workspace/meadow_ft.jpg may not be loaded. 

И когда я добавляю THREE.ImageUtils .crossOrigin = "Анонимный"; Я получаю эту ошибку:

Image from origin 'file://' has been blocked from loading by Cross-Origin Resource Sharing policy: Invalid response. Origin 'null' is therefore not allowed access. 

Я видел некоторые сообщения, говоря, чтобы запустить хром с --allow-файлов-доступ-с-файлов или любой другой, но не хотят рисковать любые вопросы безопасности. Затем я увидел, что другие говорят, что помещают изображения на веб-сервер? Это я совершенно не представлял, как это сделать и почему это должно быть так сложно?

Мои файлы html и js находятся в одной папке (ComS_336_workspace) в качестве моих изображений.

Мне просто нужна помощь в том, что делать, и если я должен сделать веб-сервер, как мне поместить на них свои изображения и установить путь к моим изображениям? Этого я не понимаю.

+0

«Мне просто нужна помощь в том, что делать». Вы уже сказали, что вам нужно сделать: разместить свой WEB-сайт на WEB-сервере. – Quentin

+0

«Я должен сделать веб-сервер, как мне поместить на него свои изображения и установить путь к моим изображениям?» - Выберите веб-сервер. Установите его. Следуйте его инструкциям. – Quentin

ответ

0

Для решения этой проблемы вам необходимо либо сохранить удаленные файлы на свой сайт, либо использовать прокси-скрипт с вашего сайта (например, PHP) для получения изображений через ваш сайт.

В любом случае вам понадобится fully qualified domain name, чтобы избавиться от ошибок, связанных с CORS. Загрузка webgl и изображений с file:/// не будет работать.

+0

Любые комментарии к голосованию по правильному голосованию? – kaigorodov

0

Что вы используете для редактирования своего кода? Если вы пытаетесь запустить страницу со своего рабочего стола в целях тестирования, я бы порекомендовал brackets.io.

Это отличное, бесплатное и поможет вам решить проблему CORS при создании кода.