18

YSlow 的一项衡量指标是使用无 cookie 的域来提供静态文件。

“当浏览器请求静态图像并随请求发送 cookie 时,服务器会忽略 cookie。这些 cookie 是不必要的网络流量。要解决此问题,请确保通过创建子域和无 cookie 请求请求静态组件在那里接待他们。” -- 雅虎 YSlow

我将此解释为意味着如果我将www.example.com/images移动到static.example.com/images ,我可以体验到性能提升。

虽然这很容易做到,但我会失去在我的内容管理系统 (Joomla/WordPress) 中轻松引用和链接到这些图像的便利能力。

是否可以使用 .htaccess 将www.example.com上特定文件夹的所有请求重定向到static.example.com上的文件夹?这种方法是否也会让 CMS 误以为图像位于其自己域的默认位置?

4

7 回答 7

15

是否可以使用 .htaccess 将 www.example.com 上特定文件夹的所有请求重定向到 static.example.com 上的文件夹?

可能,但适得其反——客户端必须发出一个 HTTP 请求,获得重定向响应,然后发出另一个 HTTP 请求。

这比保存的单行 cookie 数据要多得多!

这种方法是否也会让 CMS 误以为图像位于其自己域的默认位置?

不。

于 2009-09-16T13:57:06.263 回答
4

虽然这很容易做到,但我会失去在我的内容管理系统 (Joomla/WordPress) 中轻松引用和链接到这些图像的便利能力。

您可以尝试在 Joomla 中创建一个插件,以动态创建这些引用。

例如,您有一个插件,当您在文章中输入 {dinamic_path path} 时,它会将“static.example.com/images”附加到提供的路径中。因此,每次您需要更改服务器路径时,只需更改插件即可。对于已经在数据库中的链接,可以尝试使用phpMyAdmin在这个结构中改变它们。

它仍然失去了 TinyMCE 中所见即所得的能力,但它是一种替代方案。

于 2009-09-16T14:15:08.487 回答
4

理论上,您可以创建一个直接指向图像文件夹的虚拟域,例如 images.example.com。然后在您的 CMS(希望在主题层)中,您可以将任何指向图像文件夹的路径替换为子域的绝对路径。

于 2011-04-14T19:54:12.143 回答
3

与简单地保持原样相比,重定向会导致更多的网络流量和更多的延迟

于 2009-09-16T13:58:02.440 回答
1

它会重定向请求,但客户端仍会将其 cookie 发送到服务器,因此您实际上什么也没做。您必须直接从不存储 cookie 的域访问文件才能使其工作。

于 2009-09-16T13:58:18.147 回答
0

您真正想要做的是使用 staticexample.com/images 而不是 static.example.com/images,这样您就不会在您可能设置的 example.com 域上获取任何 cookie。如果您所做的只是使用简单的 apache 服务器或其他东西从该域中获取服务器图像,那么您可以将该服务器配置为不返回会话 cookie。

重定向是一个非常糟糕的主意。Cookie 会导致一些性能问题,但到服务器的往返行程(例如重定向)会导致更严重的性能问题。

于 2009-09-19T04:11:48.873 回答
0

我在下面做了并获得了成功:

<FilesMatch "!\.(gif|jpe?g|png)$">
    php_value session.cookie_domain example.com
</FilesMatch>

这意味着如果您没有在 cookie 信息中设置图像。然后图像在服务器上是无 cookie 的。

于 2011-12-03T19:15:45.517 回答