WebSharper — справочник по JQuery и HTTPS

После развертывания клиентской страницы w# на страницах github я получил следующую ошибку:

Mixed Content: The page at 'https://aph5nt.github.io/websharper.amplifyjs/' was loaded over HTTPS, but requested an insecure script 'http://code.jquery.com/jquery-1.11.2.min.js'. This request has been blocked; the content must be served over HTTPS.(anonymous function) @ SampleApp.head.js:1
amplify.js:830 Uncaught ReferenceError: jQuery is not defined

Можно ли как-то исправить эту ошибку?


person aph5    schedule 17.08.2016    source источник


Ответы (1)


На первый взгляд, проблема заключается в том, что jQuery неправильно упоминается в ядре WebSharper через http:

Namespace "WebSharper.JQuery.Resources" [
    Resource "JQuery" "http://code.jquery.com/jquery-1.11.2.min.js"
    |> fun r -> r.AssemblyWide()
]

(https://github.com/intellifactory/websharper/blob/5c884e97fd3dba1102c10a85b171f672d0b3f637/src/stdlib/WebSharper.JQuery/Definition.fs#L1120)

Это приводит к тому, что каждая ссылка на jQuery автоматически извлекает вышеуказанный ресурс, и приложения, обслуживаемые через https, не смогут его загрузить.

Пока это не будет исправлено, вы можете переопределить ссылку на jQuery в своем web.config, чтобы использовать URL-адрес без протокола:

<appsettings>
    <add key="WebSharper.JQuery.Resources.JQuery" value="//code.jquery.com/jquery-1.11.1.min.js" />
    ...

Надеюсь это поможет.

person Adam Granicz    schedule 21.08.2016