【发布时间】:2023-11-23 23:36:01
【问题描述】:
我刚刚添加了一个 CDN 服务来加快我的网站加载速度。
我对使用<img> 标签获取的照片有疑问。
我有很多这样的案例:
// userProfile.thumbnailPhotoSrc = some/relative/path.png
ng-src="{{userProfile.thumbnailPhotoSrc}}"
(我使用 AngularJS)。
在启动时,我有一个将 CDN 端点保存到 window.cdn 变量的脚本。 如果脚本确定没有可用的端点:
window.cdn = '';
所以我希望能够做类似的事情:
ng-src="window.cdn + {{userProfile.thumbnailPhotoSrc}"
但这是不可能的,因为 window.cdn 没有被评估。但这都不起作用:
ng-src="{{window.cdn + userProfile.thumbnailPhotoSrc}"
因为我只能访问{{}} 下的$scope 属性。
我无法将 CDN 端点保存到 $scope,因为每个控制器都存在一个 $scope(我有很多,这是不可维护的)。
我想到的最后一件事是,希望 ng-src 允许这样做 - 添加一个在任何 ng-src 属性上运行的转换函数,但我找不到如何做到这一点。
你建议我做什么?请记住,如果 CDN 出现故障,我希望网站从 CDN 获取照片并回退到源服务器(获取相对路径)。我怎样才能获得这种行为?
谢谢
【问题讨论】:
-
嗨,johni,您是如何从 CDN 获取图像的?您最终是否希望访问 API 的端点来检索图像数据?此外,只是一个小提示 - 您不需要引号内的“{{}}”。有时这会把事情搞砸。
-
我使用与
userProfile.thumbnailPhotoSrc相同的相对路径,只是在不同的域中。例如:'https://blabla.cdn.com/' + {{userProfile.thumbnailPhotoSrc}}- 将被评估为 CDN 的正确地址。 -
我认为这可能会有所帮助:*.com/questions/11938380/…
-
在您的示例代码中,您编写
window.CDN和window.cdn。这是偶然还是与您的问题有关? -
误了:),已编辑。
标签: javascript angularjs cdn content-delivery-network