SVG sprite文件-它是否需要有“";”;。svg";只要内容类型标题设置正确,php/nothing是否正常?
我有一个PHP脚本,可以动态生成SVG精灵。当然,该文件以SVG sprite文件-它是否需要有“";”;。svg";只要内容类型标题设置正确,php/nothing是否正常?,php,svg,Php,Svg,我有一个PHP脚本,可以动态生成SVG精灵。当然,该文件以.php结尾,而不是.svg结尾 我用标题('Content-type:image/svg+xml')在脚本顶部设置内容类型 我将nginx设置为php扩展是可选的,因此我现在可以使用以下内容引用我的svg图标: 可以吗?它在我测试过的浏览器中工作——我只是不知道我是否错过了一些浏览器优化,因为它在检索文件之前无法“猜测”内容类型 顺便说一句,我还设置了这些缓存头,这看起来适合一年的远期到期吗 header('Cache-Control
.php
结尾,而不是.svg
结尾
我用标题('Content-type:image/svg+xml')在脚本顶部设置内容类型代码>
我将nginx设置为php扩展是可选的,因此我现在可以使用以下内容引用我的svg图标:
可以吗?它在我测试过的浏览器中工作——我只是不知道我是否错过了一些浏览器优化,因为它在检索文件之前无法“猜测”内容类型
顺便说一句,我还设置了这些缓存头,这看起来适合一年的远期到期吗
header('Cache-Control: public, max-age=31536000');
header_remove('Pragma');
header_remove('Set-Cookie');
header_remove('Expires');
header('Accept-Ranges: bytes');
您是对的,内容类型
标题才是最重要的
一般来说,浏览器不会将URL分解为“目录”、“文件名”和“扩展名”等部分;事实上,HTTP根本没有“文件”的概念。相反,URL只是要发送到某个服务器的字符串;然后,服务器用一些内容和一个指示应该如何解释该内容的标题进行响应
无论您将SVG引用为/icons
,还是/icons.php
,还是/icons.awesome
,浏览器都只会发送该URL,而不知道响应是来自具有该名称的文件,还是来自其他名称的文件,还是根据需要生成的文件
您可以在这个页面上看到这一点:URL不以“.html”结尾,但浏览器正在呈现html。这并不依赖于浏览器中内置的某些默认值,因为Stack Overflow服务器发送的内容类型
头将返回的内容标识为text/html
当然,浏览器查看mime类型,而不关心扩展名。这就是HTTP和文件系统访问之间的区别。文件后缀在HTTP中绝对没有意义-因为没有“文件”开头,只有URL。谢谢。我非常熟悉在html资源上删除html/php扩展;但不确定在图像/etc资源上这样做是否会隐藏陷阱。我知道它是有效的,我只是想确保它不会在某个地方引起一个小的光点!