【问题标题】:angular 6, build can't load images on Firebase hosting角度 6,构建无法在 Firebase 托管上加载图像
【发布时间】:2020-11-25 22:10:27
【问题描述】:

将 Angular 应用程序部署到 Firebase 托管后,我无法从 assets 文件夹中加载图像。 (构建--prod) 在本地主机上运行时,图像显示。 所有其他东西都正确加载。 这是我的包 json cli:~6.2.0-beta.2 firebase 工具:4.1.0

{
  "name": "protocols",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "deploy": "ng build --prod && firebase deploy"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^6.1.2",
    "@angular/cdk": "^6.4.5",
    "@angular/common": "^6.1.0",
    "@angular/compiler": "^6.1.0",
    "@angular/core": "^6.1.0",
    "@angular/forms": "^6.1.0",
    "@angular/http": "^6.1.0",
    "@angular/material": "^6.4.5",
    "@angular/platform-browser": "^6.1.0",
    "@angular/platform-browser-dynamic": "^6.1.0",
    "@angular/pwa": "^0.8.0-beta.2",
    "@angular/router": "^6.1.0",
    "@angular/service-worker": "^6.1.0",
    "angularfire2": "^5.0.0-rc.11",
    "core-js": "^2.5.4",
    "firebase": "^5.3.1",
    "hammerjs": "^2.0.8",
    "mat-progress-buttons": "^6.0.1",
    "rxjs": "^6.0.0",
    "zone.js": "~0.8.26"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.8.0-beta.0",
    "@angular/cli": "~6.2.0-beta.2",
    "@angular/compiler-cli": "^6.1.0",
    "@angular/language-service": "^6.1.0",
    "@types/jasmine": "~2.8.8",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "~8.9.4",
    "codelyzer": "~4.3.0",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~1.7.1",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~1.1.2",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.4.0",
    "ts-node": "~7.0.0",
    "tslint": "~5.11.0",
    "typescript": "~2.9.2"
  }
}

在 appComponent 上试过

<img src="../assets/image.jpg">
<img src="/assets/image.jpg">
<img src="assets/image.jpg">

这些都不起作用。

firebase.json 中的托管设置

"hosting": {
"public": "dist",
"ignore": [
  "firebase.json",
  "**/.*",
  "**/node_modules/**"
],
"rewrites": [
  {
    "source": "**",
    "destination": "/index.html"
  }
]}

Firebase 有什么技巧吗?重写?有人可以帮助我!

【问题讨论】:

  • 您来自阿联酋还是印度?实时数据库目前存在持续问题。 Link to incident
  • 我来自巴西,使用 us-central 服务器。我认为这与 RD 正在进行的问题无关。我用 angular cli 6.0.3 和 firebase-tools 4.0.3 复制了同一个项目(只是托管)并且它工作正常。

标签: angular firebase command-line-interface firebase-hosting


【解决方案1】:

firebase 部署后,现在从 Angular 6.1.3 中的资产加载图像!终于找到了解决方案,它对我有用。问题是 tsconfig.json 更改:

"outDir": "./dist/out-tsc",

到:

"outDir": "./dist",

【讨论】:

    【解决方案2】:

    在部署到 Firebase 托管后,我在静态资产方面遇到了同样的问题,即使它们在从 localhost 提供服务时运行良好。我必须从
    &lt;img src="/src/assets/img/pricing_comparison.PNG"&gt; 更改为
    &lt;img src="/assets/img/pricing_comparison.PNG"&gt;

    (p.s. 我尝试根据接受的答案更改我的 tsconfig.json 文件,但这并没有改变或解决我的错误)

    【讨论】:

    • 不知道它是如何工作的,但它帮助了我。谢谢,凯特先生
    【解决方案3】:

    我也有同样的问题。这是我尝试过的解决方案

    1. 打开 tsconfig.json 更改:

      "outDir": "./dist/out-tsc",

      到:

      "outDir": "./dist"

    2. 打开 angular.json。确保资产配置如下所示

           "assets": [
              "src/favicon.ico",
              "src/assets"
            ],
    
    1. img 标签的变化&lt;br&gt; src="/src/assets/img/pricing_comparison.PNG"&lt;br&gt; src="/assets/img/pricing_comparison.PNG"

    【讨论】:

    • 我试过这个解决方案,还有很多其他的,都没有。唯一可行的解​​决方案是将资产文件移动到服务器中的公共文件,它不是很好,也不优雅,但它是唯一可行的解​​决方案!不得不说是在我开始使用lazy load之后才开始的,在那之前一切都很好。
    【解决方案4】:

    如果你在本地工作

    只要使用 url 就可以了

    #login {
        background-image: url('/assets/app-assets/img/gallery/login-bg.jpg');
        background-size: 100% 100%;
        background-repeat: no-repeat;
      }
    

    在您的 CSS 或 html 组件中,这对我有用。 只需将图片网址从/src/assets/your_image.png 更改为/assets/your_image.png

    这是我的角度版本

    Angular CLI: 8.2.2
    Node: 12.8.0
    OS: darwin x64
    Angular: 8.2.12
    ... animations, common, compiler, compiler-cli, core, forms
    ... language-service, platform-browser, platform-browser-dynamic
    ... router
    
    Package                           Version
    -----------------------------------------------------------
    @angular-devkit/architect         0.802.2
    @angular-devkit/build-angular     0.802.2
    @angular-devkit/build-optimizer   0.802.2
    @angular-devkit/build-webpack     0.802.2
    @angular-devkit/core              8.2.2
    @angular-devkit/schematics        8.2.2
    @angular/cli                      8.2.2
    @ngtools/webpack                  8.2.2
    @schematics/angular               8.2.2
    @schematics/update                0.802.2
    rxjs                              6.4.0
    typescript                        3.5.3
    webpack                           4.38.0
    

    【讨论】:

      猜你喜欢
      • 2019-11-22
      • 2021-04-19
      • 1970-01-01
      • 2020-05-11
      • 1970-01-01
      • 1970-01-01
      • 2019-05-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多