【问题标题】:Angular - img load fine locally, but not on development serverAngular - img 在本地加载正常,但在开发服务器上不加载
【发布时间】:2021-05-06 22:02:54
【问题描述】:

我有这个<img>,它从planeringskartaSrc 变量加载图像,当arrayBuffer 图像在我的本地环境中作为函数arrayBufferToBase64 的输入传递时,它工作正常。当我在localhost 上运行应用程序时,当函数的buffer 为空时,加载默认图像planeringskarta_notfound.png 也可以正常工作。当我将应用程序部署到开发服务器时,arrayBuffer 图像作为输入传递给函数加载,它工作得很好,但 /assets/img/planeringskarta_notfound.png 无法加载到应用程序中。对于该项目,我在angular.json 文件中像这样链接了assets 文件夹:

angular.json:

"assets": [
              "projects/up-client/src/assets",
              "projects/up-client/src/assets/icons/favicon.ico"
            ],

HTML:

<img (click)="previewPlaneringskarta()" class="planeringskarta" [src]="planeringskartaSrc"/>

TypeScript:

arrayBufferToBase64( buffer ) {
    let binary = '';
    const bytes = new Uint8Array( buffer );
    const len = bytes.byteLength;

    if (!buffer) {
      return this.planeringskartaSrc = "/assets/img/planeringskarta_notfound.png";
    }

    for (let i = 0; i < len; i++) {
      binary += String.fromCharCode( bytes[ i ] );
    }

    const imageSrc = 'data:image/gif;base64,' + window.btoa( binary );
    this.planeringskartaSrc =  this.sanitization.bypassSecurityTrustUrl(imageSrc);
  }

为什么图片在本地加载而不是在开发服务器上?

【问题讨论】:

  • 图像是否可以“手动”访问(即直接导航到 www.your.dev.hosting.com/assets/img/planeringskarta_notfound.png?base-href 是否为该环境正确设置?
  • 我有这个img,它在项目的开发服务器中工作正常,它也从assets文件夹启动src路径:icons: { filter: '&lt;img src="assets/icons/filter.svg" alt="filter"/&gt;', sortUnSort: '&lt;span&gt;&lt;/span&gt;, },所以base-href应该是正确的?

标签: javascript html angular typescript


【解决方案1】:

尝试删除 src 路径开头的斜杠,例如“assets/img/planeringskarta_notfound.png”

【讨论】:

  • 我知道我错过了什么,谢谢!
猜你喜欢
  • 1970-01-01
  • 2014-07-30
  • 2019-07-19
  • 2022-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
相关资源
最近更新 更多