我有domain.localhost和assets.domain.localhost。 htppd.conf中的虚拟主机设置正确。静态内容从子域服务
我有根“公共/”文件夹,也有像图片,脚本,样式其他文件夹。我需要从assets.domain.localhost提供来自domain.localhost的静态图像,脚本和样式服务器的内容。
我有这样的代码htaccess的:
RewriteEngine On
RewriteCond %{HTTP_HOST} !assets\.domain\.localhost
RewriteCond %{REQUEST_URI} \.(png|gif|ico|css|js)$ [NC]
RewriteRule ^(.*) http://assets.domain.localhost/$1 [L]
第一个问题:是它separatly加载资产和域降低的要求数正确的方法?
第二个问题:我检查的萤火
,一切都从assets.domain.localhost加载,但CSS和JS被加载两次。第一次从domain.localhost与302代码(只是一些字节,但它是请求),而不是从具有304代码的assets.domain.localhost。我做错了什么?
更新
此变通方法增加导致PageSpeed Insights的,但在网页性能测试下降。第二个是来自服务器的更长的响应,资产不再缓存。我有这个在htaccess的那个:
Header set Cache-Control "max-age=604800, public, must-revalidate"
<IfModule deflate_module>
<IfModule filter_module>
AddOutputFilterByType DEFLATE application/rdf+xml application/rss+xml application/atom+xml image/svg+xml
AddOutputFilterByType DEFLATE text/css text/javascript application/javascript application/x-javascript
</IfModule>
</IfModule>
变化之前,它的工作,而不是缓存不起作用。
UPDATE2
确定问题是与第一请求domain.localhost,即没有被缓存,以塞康请求assets.domain.localhost被缓存。如何摆脱第一个不必要的要求?
我不改变我的html。我绝对不想要地址图片等。我的想法是让图像,js,css的相对路径,但在从assets.domain.localhost加载htaccess集。有可能的?合乎逻辑的是你在第二段中写的,但为什么这种行为只在js和css中,并且图像是从aset子域直接加载的? – tomasr
它应该像CDN一样。像CSS一样修复相同的行为,js有jpegs,png没有 – tomasr