2009-06-30 7 views
2

je créer un projet Wicket squelette en utilisantfichiers CSS Ne pas rafraîchir avec Wicket (Lancé en Intellij via Start.java)

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

Toute la configuration/importation nouveau projet avec Maven/Intellij a bien fonctionné. Je continuai d'ajouter un fichier CSS de base sur ma page de démarrage, par la suite de façon à ce faire Wicket 1,4

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

recommandée Le fichier main.css a été mis le long du côté BasePage.java et BasePage.html dans/src/main/java. Je lance l'application avec Start.java. Le problème est que lorsque j'apporte des modifications au fichier CSS, il n'est pas détecté lorsque je relance Start.java. (Les modifications apportées aux fichiers java et html sont mises à jour lorsque je les change)

Je me suis assuré que le cache du navigateur était effacé, et même validé la requête/réponse dans Firfox/Firebug. Il semble que quelque part entre la magie de Wicket et l'instance de la jetée, Start.java crée le fichier CSS qui est mis en cache et non mis à jour. Des idées?

Répondre

1

J'ai déplacé les fichiers css dans le répertoire/webapp et cela a semblé résoudre le problème de l'enregistrement des modifications par Start.java. Je fais la même chose pour les fichiers js et les images. Étrangement, j'ai lu (sur plusieurs sites) que les gens le faisaient de différentes façons (bien que le consensus pour les classes HTML et Java soit toujours de les avoir au même endroit).

1

Je trouve une autre solution qui m'aide. Vous pouvez configurer Wicket pour ajouter un horodatage à la demande d'une ressource pour résoudre le problème de mise en cache. Dans la méthode init de votre classe d'application, appelez setAddLastModifiedTimeToResourceReferenceUrl des paramètres de reconfiguration.

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

Original: 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