【问题标题】:Remove Cookies from JS or CSS files从 JS 或 CSS 文件中删除 Cookie
【发布时间】:2010-12-18 19:38:18
【问题描述】:

奇怪的是,我的 javascript 和 css 文件有 cookie(Firebug 说)。我使用 Zend Framework,我认为这与它有关。我可以更改 CSS 或 JS 文件未链接到 ZF 的 .htaccess 还是有其他解决方案?

.htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

在我的引导文件中,我自动启动会话, 我可以检测到真正存在的文件和无效会话/cookie 吗?

【问题讨论】:

  • 也许这是 serverfault.com 的问题?

标签: php zend-framework session cookies


【解决方案1】:

您可以删除无用的 cookie。使用 apache 的 htaccess 示例:

<FilesMatch "\.(css|js|png|gif|jpg|jpeg)$"> 
     Header unset Cookie 
     Header unset Set-Cookie 
</FilesMatch> 

【讨论】:

    【解决方案2】:

    好像有办法:

    Header unset Set-Cookie
    

    【讨论】:

    • 如果您使用相同的域将资产作为主要内容提供,Cookie 仍将在请求标头中发送。这通常会阻止 CDN 缓存文件。使用未设置 cookie 的第二个域将确保您的服务器不会响应 cookie,这样做,CDN 和浏览器将能够缓存所提供的内容。
    【解决方案3】:

    您可以将您的 CSS 和 JavaScript 文件以及您的图片放在“静态”网络服务器上或不接受 cookie 的子域。有两个很好的解释:

    【讨论】:

    • 这就是我的意思。但是我可以为单独文件夹中的所有文件(其中包含 .htaccess)设置“不发送/接受 cookie”吗?
    • 不,你不能。 cookie 由浏览器发送,如果他有一个站点设置的 cookie,他将在每个请求中发送一个 cookie 到设置 cookie 的域。
    【解决方案4】:

    Cookie 不在 js 或 CSS 文件中:它们通过 HTTP 标头传输。

    您可以最大限度地减少它们占用的空间,但如果您依赖它们,就无法真正摆脱它们。您始终可以将静态文件“移动”到其他地方,这样您就不会产生额外标题的“成本”,例如饼干。其他地方 --> 您完全禁止使用 cookie 的其他域。

    【讨论】:

    • OP:只有您的浏览器有 cookie,而不是单个文件。但是,如果在传输单个文件期间存在 cookie,则会在 HTTP 标头中传输 cookie
    • 是的,没错,HTTP头发送cookie,我已经献身了。
    【解决方案5】:

    Cookie 是按域设置的,因此浏览器会将它们与向该域发出的每个请求一起发送,而不管它请求的是什么类型的资源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-22
      • 2023-03-25
      • 1970-01-01
      • 2017-06-18
      • 2018-03-04
      • 2018-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多