我使用firebase托管来托管angularfire应用程序。
使用文档中的快速入门说明部署了该应用。
我的应用程序中存在一些小问题,我需要更改的内容。我做了这些更改,再次执行了这些步骤,但实时应用程序(通过我的firebase网址)并没有反映出这一点。
我尝试删除应用,删除firebase.json文件,多次重做该过程。但它继续反映旧的变化。如果这是一个git push部署,看起来我似乎还没有做出新的改变。我仔细阅读了文档, - help,命令等,但无法解决这个问题。
我在这里可能会缺少什么?
编辑:确切的命令:
localhost:angfire Test$ firebase init
----------------------------------------------------
Your Firebase Apps kpennell@gmail.com
----------------------------------------------------
torid-fire-4332
----------------------------------------------------
Enter the name of the Firebase app you would like to use for hosting
Firebase app: torid-fire-4332
----------------------------------------------------
Site URL: https://torid-fire-4332.firebaseapp.com
----------------------------------------------------
Enter the name of your app's public directory.
(usually where you store your index.html file)
Public Directory: (current directory) app
Initializing app into current directory...
Writing firebase.json settings file...
Successfully initialized app
To deploy: firebase deploy
localhost:angfire Test$ firebase deploy
Preparing to deploy Public Directory...
progress: 100%
Successfully deployed
Site URL: https://torid-fire-4332.firebaseapp.com, or use firebase open
Hosting Dashboard: https://firebase.com/account then view the hosting section of your app
localhost:angfire Test$ firebase open
localhost:angfire Test$ `
然后我打开该页面,它仍在拉入更新的文件。我不喜欢第一次使用http文件。我已将它们更改为https,但这并未在应用中反映出来。
edit2
尽管在应用程序中进行了更改,仍然会出现http问题。
Failed to load resource: net::ERR_INSECURE_RESPONSE https://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css
Failed to load resource: net::ERR_INSECURE_RESPONSE https://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js
我在应用中的脚本:
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-route/angular-route.js"></script>
<script src="bower_components/firebase/firebase.js"></script>
<script src="bower_components/firebase-simple-login/firebase-simple-login.js"></script>
<script src="bower_components/angularfire/dist/angularfire.js"></script>
<link rel="stylesheet" href="//cdn.leafletjs.com/leaflet-0.7.3/leaflet.css" />
<script src="//cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
<script src="//tombatossals.github.io/angular-leaflet-directive/dist/angular-leaflet-directive.min.js"></script>
<link rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.css" />
<link rel="stylesheet" href="bower_components/Leaflet.awesome-markers/dist/leaflet.awesome-markers.css" />
<script src="bower_components/Leaflet.awesome-markers/dist/leaflet.awesome-markers.js"></script>
答案 0 :(得分:2)
您的应用程序看起来正在通过HTTP加载一些脚本文件,而应用程序本身则通过HTTPS提供。这导致一些浏览器拒绝非安全脚本。
例如,当我加载您的应用时,Chrome会在其控制台上将其写入:
[已屏蔽]&#39; https://torid-fire-4332.firebaseapp.com/&#39;是通过HTTPS加载的,但运行的不安全内容来自&#39; http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css&#39;:此内容也应通过HTTPS加载。&#34;。
在Internet Explorer 9中,页面加载正常(在我确认我想要&#34;显示所有内容&#34;)之后。我的猜测是你的移动浏览器的行为与IE9类似,并且仍然接受HTTP和HTTPS的组合。
解决方案是通过HTTPS加载所有内容。
为防止出现此类问题,现在通常会指定没有协议的脚本源:
<script src="//cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
加载此script
标记后,它会继承&#34;来自其父母的协议。因此,当通过HTTPS加载页面时,脚本将通过HTTPS加载。当页面通过HTTP加载时,脚本也会通过HTTP加载。
您的第二次修改显示,在我上面提到的最后一次更改后,更新已成功推送到Firebase托管。我怀疑实际的变化与成功有什么关系,但至少现在我们已经取得了进展。
您获得的:ERR_INSECURE_RESPONSE
是因为cds.leafletjs.com没有使用有效的HTTPS证书。
通过将leaflet.js文件放在您自己的应用程序中,这可能是最容易解决的。
您还可以使用正确实施HTTPS的备用CDN。例如。 http://cdnjs.com/libraries/leaflet