【问题标题】:Ember isn't loading some images in productionEmber 没有在生产中加载一些图像
【发布时间】:2016-05-30 00:20:25
【问题描述】:

我有一个 Ember-cli 1.13 应用程序,其中有很多图像存储在公共目录中。现在,它将正确加载除特定组件中的图像之外的所有图像。

组件是这样调用的:

{{list-item url="list-url" name="List Name" price="240"}}

在内部,组件是这样的:

<a href="http://example.com/{{url}}">
  <img src="/{{url}}.png" alt='Picture of the {{name}}' />
  <p class="item-name">{{name}}</p>
  ...
</a>

当我构建应用程序并启动到 heroku 时,损坏的路径是

https://ridiculous-name-123123.herokuapp.com/list-item.png

这与本地主机路径相同,但显然具有不同的域。

所有其他图像在不与组件一起使用时都可以使用。

我哪里出错了?

【问题讨论】:

    标签: javascript heroku ember.js


    【解决方案1】:

    当您使用生产环境构建时,您的资产会经历称为 fingerprinting 的内容。

    这里的问题似乎是您的“构建” url 链接到非指纹文件,一种解决方案是将这些图像移动到一个文件夹中,并在您的ember-cli-build.js 中将它们排除在指纹之外:

    var app = new EmberApp({
      fingerprint: {
        exclude: ['myComponentImages/']
      }
    });
    

    更好的解决方案是使用完整的 url 或传递一个更改图像显示的类,因为看起来这些是静态资产而不是用户上传的内容。

    【讨论】:

    • 谢谢,这太好了,我不知道 Ember 会这样做。
    • 如果您想在 javascript 中引用指纹,您将如何获取指纹?是否有返回调整后文件名的函数(例如 Ember.getFingerprint('/assets/asdf.png') 返回类似 /assets/asdf-80938294jjx809sf.png 的内容)?
    • 我们能否澄清一下['myComponentImages/'] ...和一个示例路径?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-19
    • 2019-06-26
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多