Играя немного с помощью websharper и пыталась получить демо-версию webgl в моей системе. Я модифицировал данный демо-код, чтобы использовать его в приложении SinglePage. Кроме того, я изменил текстуру, используемую демо, к текстуре, которая у меня есть на моей системе.websharper webgl demo security issue?
let MakeAndBindTexture (gl : WebGL.RenderingContext) f =
Img []
|>! Events.OnLoad (fun img ev ->
let tex = gl.CreateTexture()
gl.ActiveTexture(gl.TEXTURE0)
gl.BindTexture(gl.TEXTURE_2D, tex)
gl.PixelStorei(gl.UNPACK_FLIP_Y_WEBGL, 1)
gl.TexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, img.Dom)
gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR)
gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR)
f())
|> fun img -> img -< [Attr.Src "mandel.jpg"] // <<-- located in project root
|> ignore
Тестирование это с Google Chrome, (без веб-сервера вовлеченного - работает index.html из корневой папки проекта, я получаю следующее сообщение об ошибке: журнал
SinglePageApplication1.min.js:42 Uncaught SecurityError: Failed to execute 'texImage2D' on 'WebGLRenderingContext': The cross-origin image at file:///E:/R/playground/ConsoleApplication7/SinglePageApplication1/mandel.jpg may not be loaded.
Microsoft края, с другой стороны, успешно работает и производит ожидаемый результат.
Теперь, конечно, интересно, как .jpg в том же пути, что и остальные могут вызвать ошибку безопасности в Google Chrome.
Кроме того, я задаюсь вопросом, есть ли у меня шанс запустить его в Google Chrome, так или иначе ...
Я также пробовал другие места для mandel.jpg, например, рядом с ... min.js. Но во всех местах произошла такая же ошибка.
Имеет смысл - ответ, но в моих глазах это очень ра которые они сделали. Таким образом, серверный HTML-код в порядке, пока он не загрузится ... um ... no ... загрузка скриптов работает ... и ... загрузка файлов css ... но никак не загружает изображение? На мой взгляд, они должны преодолеть это и отказаться от загрузки чего-либо из локальной файловой системы. – BitTickler
проблема * кто * делает загрузка. Chrome доверяет * своему собственному механизму рендеринга * для загрузки и отображения файла без каких-либо вредоносных (duh), но он не знает, что делает какой-то случайный скрипт * действительно *. Таким образом, тег '' поиск другого файла будет отображаться просто отлично, но скрипт не может ни загрузить изображение напрямую, ни получить доступ к содержимому этого тега (который имеет другое происхождение). – piaste
Что он сказал, но ** НЕ ПОЛЬЗУЙТЕ ЭТО ФЛАГ !!! ЕСТЬ ПРИЧИНА, ЧТО ЭТО СУЩЕСТВУЕТ * «Вам не нужно больно больно устанавливать серверы, такие как Suave или IIS. Если вы используете Linux или OSX, просто подключитесь к папке с вашими файлами и наберите« python -m SimpleHTTPServer ». re на любой ОС другой вариант - [devd] (https://github.com/cortesi/devd). Super Simple. Небольшой файл, он просто работает. – gman