带有HTTTPs的CSS动态绝对路径

带有HTTTPs的CSS动态绝对路径,css,Css,我有一个解决方案,它使用AWS Cloudfront CDN处理静态文件,如:图像、js和css。在应用程序中,某些页面使用HTTP和HTTPS请求。这样,我的CSS文件具有到CDN的绝对路径,并且在使用HTTPS请求时必须动态地将前缀HTTP更改为HTTPS,否则HTTPS将中断 例如: 当我访问时,加载的CSS是: body{ background: url("http://aws.cloudfront.com/image-for-page-a.png"); }

我有一个解决方案,它使用AWS Cloudfront CDN处理静态文件,如:图像、js和css。在应用程序中,某些页面使用HTTP和HTTPS请求。这样,我的CSS文件具有到CDN的绝对路径,并且在使用HTTPS请求时必须动态地将前缀HTTP更改为HTTPS,否则HTTPS将中断

例如: 当我访问时,加载的CSS是:

    body{
      background: url("http://aws.cloudfront.com/image-for-page-a.png");
    }
但是,当我访问HTTPS请求时,CSS必须在cloudfront HTTPS域中加载图像:

    body{
      background: url("https://aws.cloudfront.com/image-for-page-a.png");
    }
如何在CSS文件中将此请求从HTTP动态更改为HTTPS? 欢迎对架构提出任何建议


谢谢。

推送基于http或https的URL的动态特性需要在应用程序中编写。您必须在运行时选择http或https,然后准备css或注入css,然后通过应用程序提供服务

这个方法有点棘手,或者说实现起来很普通。我建议更好的方法是以这样一种方式修改您的应用程序,以使用基于https的URL


在您实现了这一点之后,您的主应用程序很可能是基于HTTP的,并且js/png/媒体可以通过。https。明天,如果您决定将所有应用程序都基于https,则无需再次触碰此模块。

使用方案相关URL:

body{
  background: url("//aws.cloudfront.com/image-for-page-a.png");
}

为什么需要绝对路径?