프런트엔드 - 참조된 스타일 파일 또는 리소스 파일의 버전 번호 관련 문제
習慣沉默
習慣沉默 2017-04-25 09:03:56
0
3
678

스타일 파일이나 리소스 파일을 참조할 때 버전 번호가 추가되는 경우가 있습니다
예:
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. 자주 수정해야 하는 정적 파일의 경우. 각 수정 후에는 새 버전 번호가 자동으로 생성됩니다. 브라우저는 새 파일을 캐시합니다.
    일반적으로 사용되는 경우에는 추가할 필요가 없습니다. 예를 들어 사용자 정의가 허용되지 않는 타사 라이브러리를 사용하는 경우 버전 업그레이드 빈도가 그리 높지 않습니다. 이는 생략될 수 있습니다.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿