JSF 웹 응용 프로그램에서 작업하고 있습니다. CSS 파일을 변경하고 처음으로 프로그램을 배포 할 때마다 CSS 파일의 변경 내용이 반영되지 않습니다. 나는 다른 상황에서 그것을 테스트했다. 어떻게 이런 일이 발생하며 어떻게 해결할 수 있습니까? 내가 Ctrl + F5를 눌러배포 후 CSS 파일의 변경 내용이 반영되지 않습니다.
답변
예는 그 다음
을로드 그것은 바로 브라우저 캐시에서 제공되고 있었다. 그건 아주 괜찮아. 실제 생산 환경에서 네트워크 대역폭을 절약합니다. 그러나 개발 과정이나 업데이트를 제작할 때마다 이것이 방해가된다고 생각할 수 있습니다. 개발 중에 Ctrl + F5 키를 익히는 법을 배웁니다. 그러나 제작자는 최종 사용자가 "트릭"을 인식하지 못하기 때문에이를 해결하고 싶습니다.
일반적인 접근법은 버전 번호를 요청 매개 변수로 CSS 리소스에 추가하는 것입니다.
<link rel="stylesheet" href="style.css?v=1.0" />
CSS를 크게 변경하면 항상 업데이트를 적용하기 전에 버전 번호를 증가시키고 싶습니다.
<link rel="stylesheet" href="style.css?v=1.1" />
이렇게하면 브라우저가 스타일 시트를 다시로드하게됩니다.
또 다른 방법은 서버의 시작 시간을 사용하는 것입니다. JSF를 사용할 때 faces-config.xml
에 응용 프로그램 범위 관리 Bean으로 선언 된 java.util.Date
을 사용하면 쉽게 수행 할 수 있습니다. 이 같은 HTML로 생성됩니다
<link rel="stylesheet" href="style.css?#{startup.time}" />
:
이<link rel="stylesheet" href="style.css?1314105929937" />
그것은 당신이 서버를 다시 시작하거나 매번 변경됩니다
<managed-bean>
<description>Startup date</description>
<managed-bean-name>startup</managed-bean-name>
<managed-bean-class>java.util.Date</managed-bean-class>
<managed-bean-scope>application</managed-bean-scope>
</managed-bean>
그럼 당신은 타임 스탬프를 얻을 Date#getTime()
을 사용할 수 있습니다 webapp을 재배포하십시오. 따라서 브라우저는 리소스를 다시로드해야합니다 (실제로 변경되지 않았을 때조차도!) 캐싱과 대역폭 사용량이 공동 일 경우이를 명심하십시오 엔). JavaScript와 이미지와 같은 다른 정적 리소스에도 동일한 기술을 적용 할 수 있습니다.
이미 JSF 2.x를 사용하고 있다면, 내장 된 "리소스 라이브러리 버전 관리"기능을 사용할 수 있습니다. 또한 What is the JSF resource library for and how should it be used?
나는 CSS 파일을 바꾸는 동안 동일한 문제가 있었고 사이트를 새로 고쳐야했다. 꽤 귀찮고 매우 부끄러웠다.
결국 나는 프로젝트에 구현해야하는 멋진 "도구"인 자바 스크립트 파일을 발견했습니다. 나중에 사이트를 새로 고칠 필요가 없으며 CSS 파일을 저장하면 2,3 초 후에 변경 사항이 자동으로 적용됩니다.
당신이 말한 방식대로 사용하려고했지만 저를 위해 일하지 않습니다. js 파일을 다운로드하여 프로젝트에 넣었지만 효과가 없습니다. – Aditzu
- 1. PHP 포함 파일 변경 내용이 반영되지 않습니다.
- 2. 응용 프로그램을 다시 시작한 후에 App.config의 변경 내용이 반영되지 않습니다.
- 3. NetBeans : 저장 후 자바 스크립트 및 CSS 파일의 코드 변경 사항이 브라우저에 반영되지 않습니다.
- 4. 추가를 삭제하거나 액세스 데이터베이스를 업데이트해도 데이터베이스의 변경 내용이 반영되지 않습니다.
- 5. Infopath 2007 양식에 변경 내용이 표시되지 않습니다.
- 6. 웹 참조가있는 응용 프로그램에 웹 서비스의 변경 내용이 반영되지 않았습니다.
- 7. .xhtml 파일의 변경 내용이 브라우저에 반영되지 않고 다시 시작되고 빌드가 필요함
- 8. 프로젝트 이름 변경 GitHub에 반영되지 않습니다
- 9. tests.py의 django 변경 사항은 models.py에 반영되지 않습니다
- 10. 응용 프로그램 변경 내용이 작동하지 않습니다.
- 11. CDN에서 반영되지 않은 Javascript/CSS의 변경
- 12. 모듈의 소스 변경 내용이 적용되지 않습니다.
- 13. SharePoint 2010 corev4.css 변경 사항이 하위 사이트에 반영되지 않음
- 14. Python 변경 사항이 반영되지 않았습니다.
- 15. VtChart 변경 내용이 MS VB6에 저장되지 않습니다.
- 16. EntityManager에 다른 트랜잭션의 변경 내용이 표시되지 않습니다.
- 17. ListBox에 DataSource에 대한 변경 내용이 표시되지 않습니다.
- 18. 변경 내용이 C# 코드와 C++ 코드 사이에 전달 된 변수 값에 반영되지 않음
- 19. 자바 스크립트 파일 변경 배포
- 20. 플렉스 - mxml 변경 사항이 브라우저에 반영되지 않음
- 21. DropDownList의 변경 내용이 없습니다.
- 22. BlackBerry - 변경 사항이 내 앱에 반영되지 않음
- 23. JSP 페이지가 Jetty에 반영되지 않습니다.
- 24. 변경 후 AdoNetAppender가 작동하지 않습니다.
- 25. 이미지에 반영되지 않는 CvRect 값의 변경
- 26. WPF - 간단한 데이터 바인딩에 대한 개체의 변경 내용이 주 창에서 대상으로 다시 반영되지 않는 이유는 무엇입니까?
- 27. Sharepoint 2010 : 배포가 원격으로 반영되지 않습니다.
- 28. DataTableAdapter에서 삽입 한 내용이 MS Access 데이터베이스에 반영되지 않았습니다!
- 29. 웹 페이지에 새 파일 내용이 표시되지 않습니다.
- 30. ClickOnce 배포 및 설치 후 구성 파일 변경
는 하나를 제외하고는 브라우저에서 Ctrl + F5를 누르면 다른, 그들은 넣기), 항상 같은 방식 BalusC에서 매우 유용 트릭으로 http://cssrefresh.frebsite.nl/
: 여기
링크입니까? – BalusC예 Ctrl + F5를 누르면로드 됨 – qazal
예 Ctrl + F5를 누르면로드됩니다. 즉, 마지막 CSS는 브라우저 현금으로 유지됩니다. 어떻게하면 현금으로이 문제를 해결할 수 있습니까? – qazal