【发布时间】:2018-04-27 15:37:49
【问题描述】:
在深入查看一些最流行的网站的代码时,我见过很多次,CSS和JavaScript文件名是这样的,
<link type="text/css" rel="stylesheet" href="//sample.com/css/css__k3sYInttBtNNuJgtPSyqaYy9vVxS4qTZLrfs1ujQB9g__SH_QaIH3bnSp3nOw8n8afhszfHJlxVt51qRlrrrOnk0__fBOuweRojwN82z7EY4v-sVsMwU_P_vZSaU3fmyho6Do.css" media="all" />
<script type="text/javascript" src="//sample.com/js/js__-V23Vc4PVahQcqfyxss_rmNogErBARnPCvI7oPXC0qQ__O-yO5Gg8pRRaefl4d0X9qXUJTOSHq0yazxF-4tJCU_k__fBOuweRojwN82z7EY4v-sVsMwU_P_vZSaU3fmyho6Do.js"></script>
似乎文件名已经过哈希处理,我不知道是什么原因。所以我遇到了以下问题。
使用这种方法的目的是什么?
我也见过非常复杂的文件夹名称。这是为什么呢?
是否存在任何安全问题?
我们能否使用 PHP 动态更改文件/文件夹名称以获得最大的安全性?
我对这个领域并不陌生。
【问题讨论】:
-
如果bundle会被重建,哈希改变并且浏览器知道它需要更新缓存的资产
-
名称是通过自动化脚本生成的。它可以防止名称冲突并停止浏览器缓存问题。
-
^^ 那。它们可能是在捆绑期间生成的。
-
@MysterX 如果你添加像
http://wxample.com/.../abc.js?v=0.5.3这样的版本也可以工作,不是吗? -
是的,大多数现代浏览器都可以使用这种语法,但几年前一些旧版本的浏览器将仅出于缓存目的使用文件名。此外,在开发时,您的版本号不会改变,并且您可能会使用相同的 css 或 js 文件测试页面数百次,因此与其担心版本号(在您的开发环境中不会改变),可能更容易包括日期或时间戳,或哈希...
标签: javascript php html css hash