我在https://www.something.com上有一个网站 该网站的一部分位于子域https://subdomain.something.com
我想网站图片只能在整个网站上加载一次,因此要从https://www.something.com加载子域图像,如果用户已经访问过主网站,则图片不需要再次加载,这可能吗?
我认为这是唯一可以使用的路径,如果有人对此有任何进一步的想法,我会很感激吗?
提前致谢!
background:url("https://www.something.com/images/my-image.png");
答案 0 :(得分:0)
<强>缓存强>
根据它来自的位置找到缓存的图片。我们假设用户通过foo.com
下载图片,图片的来源位置为foo.com/image1.jpg
,之后他会转到显示相同图片的subdomain.foo.com
。现在,如果图像来自同一位置(foo.com/image1.jpg
),您的浏览器会注意到该图像并从缓存中获取该文件。如果它是相同的图片,但来自不同的来源位置,则您的浏览器无法从缓存中获取,但会将其下载。
为了在浏览器缓存中包含图像(,css和javascript),您可以将以下代码放在.htaccess
文件中(仅限apache。)
ExpiresActive On
ExpiresDefault "access plus 10 seconds"
ExpiresByType text/html "access plus 10 seconds"
ExpiresByType image/x-icon "access plus 1000000 seconds"
ExpiresByType image/gif "access plus 1000000 seconds"
ExpiresByType image/jpeg "access plus 1000000 seconds"
ExpiresByType image/png "access plus 1000000 seconds"
ExpiresByType text/css "access plus 1000000 seconds"
ExpiresByType text/javascript "access plus 1000000 seconds"
ExpiresByType application/x-javascript "access plus 1000000 seconds"
1000000 seconds
是缓存文件的到期日期。
如果您能够使用CDN,我建议,因为CDN会自动缓存静态内容,因此您不必担心这一点。您可以将CDN放在子域中,也可以直接链接到它,但是您可能会遇到一些跨域错误。
<强>路径强>
在您的情况下,您需要使用完整路径。因为像../images/foo.jpg
之类的东西会将图像定位在同一个域中。如果由于某种原因,您不想为每个元素键入完整的URL,那么您可以使用PHP。
<?php
$domain = "http://www.foo.com";
?>
<style>
div{
background:url("<?php echo $domain; ?>/images/my-image.png");
}
</style>
注意:这段代码应该放在head标签中。