前端 - 关于引用样式文件或资源文件的版本号问题
習慣沉默
習慣沉默 2017-04-25 09:03:56
0
3
597

有时在引用样式文件或资源文件时会加上版本号
例如:
style.css?v=20140520
background: xxx.jpg?v=201140520
我是菜鸟,有这么几个困惑:

  • 这样的好处和必要性是什么?我只知道一点,避免用户端的缓存而使样式不刷新。请问还有别的考虑吗?
  • 在什么情况下是可以不加的,在什么情况下是必须加的?因为我在读别的网站源码的时候发现有些是加的,有些是不加的。
  • 服务器根据版本号返回相应版本的文件的机制是怎么样的?我之前对svn,git等版本管理工具的认识仅仅停留在团队代码协作工具上。是不是在这个机制里是svn起的作用?具体的流程是怎样的?
  • 如何确定版本号?我看很多代码加版本号的时候是加日期?还有别的方式吗?如何知道自己该加的版本号是什么?
習慣沉默
習慣沉默

모든 응답(3)
Ty80

엔지니어 소스 코드가 다음과 같이 작성되기를 바랍니다.

으아악

하지만 온라인 코드는 이렇습니다.

으아악

문자열 "_82244e91"은 a.js 파일의 내용을 기반으로 해싱하여 얻습니다. 이는 파일의 내용이 변경되는 경우에만 변경됩니다. 같은 이름의 파일을 덮어쓰는 것이 아니라 버전 순서도 파일 이름과 함께 쓰기 때문에 위에서 언급한 문제는 발생하지 않습니다. 동시에 이렇게 하면 다른 이점도 있습니다.

온라인 a.js는 동일한 이름의 파일을 덮어쓰는 것이 아니라 파일 이름 + 해시의 중복이므로 공백 문제 없이 정적 리소스가 먼저 온라인에 있고 그 다음에는 html 페이지에 있을 수 있습니다.
문제가 발생하여 버전을 롤백하는 경우 a.js를 롤백할 필요 없이 페이지만 롤백하면 됩니다.
정적 리소스 버전 번호는 파일 콘텐츠의 해시이므로 모든 정적 리소스에 대해 영구적인 강력한 캐싱을 활성화할 수 있습니다. 업데이트된 콘텐츠가 있는 파일만
캐시 무효화, 캐시 활용도 대폭 증가
정적 리소스를 수정하면 온라인에서 새로운 파일이 생성되므로 하나의 파일이 하나의 버전에 해당하므로 CDN 캐시 형태의 공격을 받지 않습니다

정적 리소스 버전 업데이트 및 캐싱

某草草
  1. 당신 말이 맞습니다. 이것의 이점과 필요성은 사용자 측에서 캐싱을 피하고 스타일이 새로 고쳐지지 않게 한다는 것입니다. 다른 것은 중요하지 않습니다.
  2. 신속한 버전 반복이 필요한 경우 사용자가 적시에 업데이트할 수 있도록 추가하는 것이 좋습니다. 오랫동안 업데이트되지 않은 페이지라면 추가할 필요가 없습니다.
  3. 일반적으로 게시 및 패키징 도구는 특정 버전 번호를 출력하는 역할을 담당합니다.
  4. 버전 관리 도구의 전체 버전 번호를 선택할 수 있고, 수정 또는 패키징 날짜 번호를 선택할 수 있으며, 사용자 정의 버전 번호(예: 헤더 파일에 수동으로 지정된 버전 번호)를 선택할 수 있습니다. 당신은 당신의 필요에 따라 그것을 선택할 수 있습니다. 일반적으로 날짜 번호만 사용하는데 이는 상대적으로 간단합니다.
世界只因有你
  1. 자주 수정해야 하는 정적 파일의 경우. 각 수정 후에는 새 버전 번호가 자동으로 생성됩니다. 브라우저는 새 파일을 캐시합니다.
    일반적으로 사용되는 경우에는 추가할 필요가 없습니다. 예를 들어 사용자 정의가 허용되지 않는 타사 라이브러리를 사용하는 경우 버전 업그레이드 빈도가 그리 높지 않습니다. 이는 생략될 수 있습니다.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!