【问题标题】:CDN : Setting the base URL for images and JS AJAX requestsCDN : 设置图像和 JS AJAX 请求的基本 URL
【发布时间】:2011-02-25 19:51:56
【问题描述】:

我正在将我的所有静态内容迁移到 Amazon S3 CDN。因此,我想将图像的基本 url 设置为亚马逊 URL,这样我就可以保持 src 属性相同(例如“/imgs/myImage.png”)。

这适用于图像。尽管我的 JS ajax 请求也以相同的方式获取(例如“/ajax/ajaxPage.php”)并试图在亚马逊域而不是当前域上找到我的 php 文件。

我必须完全重写我所有的 ajax 请求 url,还是有解决这个问题的聪明方法?

【问题讨论】:

    标签: php javascript ajax cross-domain cdn


    【解决方案1】:

    据我所知,如果您使用 base 更改页面的基础,所有 relative URLs 都会针对它解决。将base 限定为仅适用于某些类型的资源肯定会很有用,但我不知道有一个。

    所以听起来您需要对图像或所有页内链接和 ajax 请求使用绝对 URL。对于 ajax 请求,您可以轻松地在 JavaScript 中执行一个包装函数,添加必要的初始部分。

    【讨论】:

    • 我现在正在处理我的 jaax 请求,并且似乎正在工作!网址:$baseURL+"/ajax/myfile_ajax.php"
    【解决方案2】:

    您应该保持您的应用程序不变。您应该在您的 Web 服务器(Apache、nginx 和其他)上添加一些重写规则。像这样的 apache

    重写规则 ^/(.*).png$ http://www.somewhere.else/$1.png [R,NC]

    重写规则 ^/ajax/(.*)$ /ajax/$1

    【讨论】:

    • 仅当您想无故减慢页面加载速度时。这样,每个对图像的请求将首先到达他的服务器,然后受到不必要的(和误导性的)302 响应(“临时移动”)的打击,然后浏览器才会请求图像从正确的位置。
    • R 选项默认会使其 301 响应,但是会增加服务器的额外负载。
    猜你喜欢
    • 2016-04-03
    • 1970-01-01
    • 1970-01-01
    • 2012-02-06
    • 2014-06-10
    • 2023-01-19
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多