正如标题所述,我有一个角度指令在我的项目中加载模板" /views/modals/help.html"
templateurl在localhost和仅使用http的测试服务器上运行良好。但是,当我到达使用https的服务器时,我收到错误:"此请求已被阻止;内容必须通过HTTPS提供。"
我找不到任何有关如何使用https使用templateUrl的文档。任何帮助表示赞赏!
答案 0 :(得分:2)
好的,问题是Angular在HTTPS页面上加载了templateUrl。我原本以为它会尝试通过HTTPS加载模板,因为角度,控制器,指令等是通过HTTPS页面上的相对URL加载的,在我看来,这意味着它们已经加载了HTTPS。
无论出于何种原因,angular都没有通过HTTPS加载模板。所以我稍微改变了我的指示:
templateUrl: function() {
var useHTTPS = window.location.href.indexOf('https') > -1;
if (useHTTPS) {
return 'https://www.example.com/path/to/htmlfile.html';
} else {
return '/path/to/htmlfile.html';
}
}
答案 1 :(得分:1)
问题是,如果您加载https网页,则必须使用https检索页面上的所有资源。
因此,如果您的模板从http主机检索到https主机,它们将被阻止。源主机必须实现https。
p.s另一件事https://letsencrypt.org/已开始为您的服务器提供免费的https认证。当他们与思科,Chrome和Mozilla等巨头合作时,看起来是一个很有希望的项目。