2009-06-30 5 views
2

CSS 파일이 개찰로 새로 고침되지 않음 (Start.java를 통해 Intellij에서 시작됨)

mvn archetype:create -DarchetypeGroupId=org.apache.wicket -DarchetypeArtifactId=wicket-archetype-quickstart -DarchetypeVersion=1.4-rc4 -DgroupId=com.mycompany -DartifactId=myproject 

모든 구성/Maven/Intellij를 사용하여 새 프로젝트를 가져 오는 작업이 정상적으로 작동하는 골격 Wicket 프로젝트를 만들었습니다. 나는 Wicket 1.4에서 다음과 같은 권장 방법에 따라 시작 페이지에 기본 CSS 파일을 추가했다.

public class BasePage extends WebPage { 
    public BasePage() { 
     add(CSSPackageResource.getHeaderContribution(BasePage.class, "main.css")); 
    } 
} 
public class BasePage extends WebPage { 
    public BasePage() { 
     add(CSSPackageResource.getHeaderContribution(BasePage.class, "main.css")); 
    } 
} 
public class BasePage extends WebPage { 
    public BasePage() { 
     add(CSSPackageResource.getHeaderContribution(BasePage.class, "main.css")); 
    } 
} 

main.css 파일은 side BasePage.java와 BasePage.html in/src/main/java. Start.java로 응용 프로그램을 시작합니다. 문제는 Start.java를 재실행 할 때 CSS 파일을 수정하지 않아도됩니다. (변경하면 java 및 html 파일의 변경 사항이 업데이트됩니다.)

브라우저 캐시가 지워지고 있는지 확인하고 Firfox/Firebug에서 요청/응답의 유효성을 검사했습니다. 그것은 Wicket의 마법과 갑판 인스턴스 사이의 어딘가에있는 것처럼 보입니다. Start.java는 CSS 파일이 캐시되고 업데이트되지 않도록 만듭니다. 어떤 아이디어?

답변

1

나는 css 파일을/webapp 디렉토리로 옮겼다.이 파일은 Start.java에서 변경 사항을 등록하는 문제를 해결하는 것으로 보였다. 나는 js 파일과 이미지에 대해서도 똑같이하고있다. 이상하게도 여러 가지 방법으로이 작업을하는 사람들 (여러 사이트에서)을 읽었습니다 (HTML 및 Java 클래스에 대한 합의는 항상 같은 위치에 있어야 함).

1

나를 돕는 다른 해결책을 찾았습니다. 캐시 문제를 해결하기 위해 리소스 요청에 타임 스탬프를 추가하도록 Wicket을 구성 할 수 있습니다. 응용 프로그램 클래스의 init 메서드에서 recource 설정의 setAddLastModifiedTimeToResourceReferenceUrl을 호출합니다. 원래

public class MyApplication extends WebApplication { 
    @Override 
    protected void init() { 
     getResourceSettings().setAddLastModifiedTimeToResourceReferenceUrl(true); 
    } 
} 

: http://old.nabble.com/Javascript-CSS-being-cached-by-the-browser-even-when-it-has-changed.-Should-setAddLastModifiedTimeToResourceReferenceUrl%28true%29-be-the-default--td14886538.html