【问题标题】:ERR_CONNECTION_REFUSED after Angular site deployed to Firebase Hosting (localhost...?)ERR_CONNECTION_REFUSED 将 Angular 站点部署到 Firebase 托管(本地主机...?)
【发布时间】:2019-11-29 14:33:10
【问题描述】:

我正在尝试评估来自 angular-templates.io 的管理模板,并且生产构建工作正常。我上传到 Firebase Hosting 指定 dist/browser(在生产构建期间创建)但是当我在浏览器中加载 firebase 应用程序时,它只显示“正在加载...”。它给出的错误是:

main.43059628ad5e08be77bb.js:1 ERROR 错误:未捕获(承诺中):[对象未定义] 在 R (polyfills.45eead93d001664270af.js:1) 在 R (polyfills.45eead93d001664270af.js:1) 在 polyfills.45eead93d001664270af.js:1 在 t.invokeTask (polyfills.45eead93d001664270af.js:1) 在 Object.onInvokeTask (main.43059628ad5e08be77bb.js:1) 在 t.invokeTask (polyfills.45eead93d001664270af.js:1) 在 e.runTask (polyfills.45eead93d001664270af.js:1) 在 d (polyfills.45eead93d001664270af.js:1) 在 e.invokeTask [作为调用] (polyfills.45eead93d001664270af.js:1) 在 _ (polyfills.45eead93d001664270af.js:1)

vp@main.43059628ad5e08be77bb.js:1 localhost:8000/assets/data/ng2_charts.json:1 加载资源失败:net::ERR_CONNECTION_REFUSED

main.43059628ad5e08be77bb.js:1 ERROR 错误:未捕获(承诺中):[对象未定义] 在 R (polyfills.45eead93d001664270af.js:1) 在 R (polyfills.45eead93d001664270af.js:1) 在 polyfills.45eead93d001664270af.js:1 在 t.invokeTask (polyfills.45eead93d001664270af.js:1) 在 Object.onInvokeTask (main.43059628ad5e08be77bb.js:1) 在 t.invokeTask (polyfills.45eead93d001664270af.js:1) 在 e.runTask (polyfills.45eead93d001664270af.js:1) 在 d (polyfills.45eead93d001664270af.js:1) 在 e.invokeTask [作为调用] (polyfills.45eead93d001664270af.js:1) 在 _ (polyfills.45eead93d001664270af.js:1) 副总裁@main.43059628ad5e08be77bb.js:1

localhost:8000/assets/data/extended_table.json:1 加载资源失败:net::ERR_CONNECTION_REFUSED

似乎是在说找不到两个文件:localhost:8000/assets/data 的 ng2_charts.json 和 extended_table.json。这两个文件确实存在于 dist/browser/assets/data 下,但为什么要搜索 localhost

我在文档中没有看到任何关于在部署之前需要更改配置的内容,我查看了 angular-templates.io 中的说明

这实际上是我执行的每个步骤:

npm i -g @angular/cli 

从下载的 zip 文件中复制源文件(在属性中检查 unblock 后)

npm i
npm audit fix
npm run build:ssr && npm run serve:ssr

创建 dist/browser 文件夹并运行良好

npm i @angular/fire firebase --save
npm i angularfire2
npm install -g firebase-tools
firebase init
firebase deploy

在浏览器中打开 firebase 应用

似乎我错过了一个配置步骤,但我没有在任何地方的文档中看到该步骤。任何帮助将不胜感激!

我检查了 SO 试图找到答案,但这些是我找到的最接近的:

My react project not working after deploy to firebase hosting

Angular 6.0 firebase hosting deploy not working

Angular not displaying firestore data when deployed

【问题讨论】:

    标签: angular firebase firebase-hosting


    【解决方案1】:

    想通了!必须更新两个文件(server.tssrc\environments\environment.prod.ts

    server.ts 来自

    app.listen(PORT, () => {
       console.log(`Node Express server listening on http://localhost:${PORT}`);
    });
    

    app.listen(PORT, () => {
       console.log(`Node Express server listening on https://<myfirebaseproject>.firebaseapp.com:${PORT}`);
    });
    

    src\environments\environment.prod.ts

    来自

    exports.environment = {
       production: true,
       BASE_URL: 'http://mylocalhost:8008'
    };
    

    exports.environment = {
       production: true,
       BASE_URL: 'https://<myfirebaseproject>.firebaseapp.com'
    };
    

    如果这已记录在案,有人可以发表评论以供我参考吗?如果 angular-templates.io 提到它会非常有帮助。

    【讨论】:

    • @FrankvanPuffelen:我回答了自己的问题,但不知道如何将其标记为已回答?相信我必须先投票,但不能投票给我自己的帖子...?
    猜你喜欢
    • 2019-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多