2011-02-25 41 views
2

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

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

我是否必须完全重写所有的ajax请求url或者是否有一个巧妙的方法来解决这个问题?

回答

1

据我所知,如果你使用base更改页面的基础上,所有relative URLs反对它解决。将base范围限定为仅限某些类型的资源肯定会很有用,但我不知道其中的一个。

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

+0

我我现在正在处理我的请求,并且似乎正在工作! url:$ baseURL +“/ ajax/myfile_ajax.php” – wilsonpage 2011-02-25 11:38:20

0

您应该保持原样。您应该在您的Web服务器(Apache,nginx和其他)上添加一些重写规则。像这样的Apache

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

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

+0

仅当您想放慢加载页面时没有很好的理由。有了这个,每一个*图片请求都会首先到达他的服务器,然后碰到一个不必要的(和误导性的)302响应(“暂时移动”),只有这样,浏览器才会从正确的位置请求图像。 – 2011-02-27 08:03:59

+0

R选项默认会使301响应,但是会增加服务器的额外负载。 – wael34218 2011-02-27 09:20:20