要解决这个问题,可以通过在 Nginx 配置中添加相应的响应头来实现。

在 Nginx 的配置文件中,可以使用 add_header 指令来添加响应头。在处理静态资源的位置块中,添加以下配置:

location / {
    # 处理静态资源的配置

    # 添加 Access-Control-Allow-Origin 头
    add_header Access-Control-Allow-Origin $http_origin;
}

这样配置后,Nginx 会根据请求中的 Origin 头,动态地将 Access-Control-Allow-Origin 头设置为相应的值。这样,不同域名下的页面请求资源时,会返回对应的 Access-Control-Allow-Origin 头,避免跨域错误。

另外,为了确保缓存的资源能够正确地更新,可以在 Nginx 配置中添加以下配置:

location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    # 处理静态资源的配置

    # 设置缓存过期时间为1天
    expires 1d;
}

这样设置后,缓存的资源将在 1 天后过期,当再次请求资源时,会重新从服务器获取最新的资源。

需要注意的是,以上配置中的 http_origin 变量是根据请求中的 Origin 头来动态设置的,确保了不同域名下的页面能够正确访问资源

在同一个浏览器下先打开了 footaobaocom 上的一个页面访问了我们的资源 httpsstatitctaobaoom1jpg这个资源被浏览器缓存了下来和资源内容一起缓存的还有Access-Contro-A1low-Origin httpsfootaobaocom 响应头这时又打开 bartaobaocom 上的一个页面这个页面他要访问资源 httpsstatictaobaocom1jpg 这

原文地址: https://www.cveoy.top/t/topic/iLHG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录