我正在託管模式下在Eclipse中開發GWT應用程序。GWT + Eclipse - 如何刷新靜態資源,如CSS
當我改變CSS中的東西時,我無法在瀏覽器中看到它。我正在嘗試使用CTRL + F5在瀏覽器中完全重新加載,在Eclipse中重新啓動我的應用程序並且沒有任何更改。
這有助於唯一的事情就是使用Maven乾淨重建我的應用程序安裝,在Eclipse重新啓動應用程序,然後我可以看到的變化。這需要很長時間。
任何想法我做錯了什麼?我認爲一定有更好的辦法。
問候,盧卡斯
我正在託管模式下在Eclipse中開發GWT應用程序。GWT + Eclipse - 如何刷新靜態資源,如CSS
當我改變CSS中的東西時,我無法在瀏覽器中看到它。我正在嘗試使用CTRL + F5在瀏覽器中完全重新加載,在Eclipse中重新啓動我的應用程序並且沒有任何更改。
這有助於唯一的事情就是使用Maven乾淨重建我的應用程序安裝,在Eclipse重新啓動應用程序,然後我可以看到的變化。這需要很長時間。
任何想法我做錯了什麼?我認爲一定有更好的辦法。
問候,盧卡斯
有3種方法可以解決這個問題。我不使用eclipse(我用IntelliJ編碼,並使用我的命令行Gradle腳本中的託管模式),但希望它們都應該工作。
首先是找出在託管模式從,理想的分解戰爭目錄服務中的文件。在那裏,你可以找到CSS文件,它將成爲你試圖改變的CSS文件的一個完全複製品。在那裏進行修改,重新加載,修改等,然後完成後不要忘記複製該文件並將其粘貼回源目錄。我使用VIM並來回切換。我相信你可以編寫一個腳本,在託管模式結束時將文件複製回來,如果你是一個敏感者。
第二種方法(和一個更好的方法),作爲user1570921指出,是嵌入CSS在你的代碼UiBinder的。例如,你可能有:
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<ui:style>
.outsidePanel {
background: #00F;
}
</ui:style>
<g:HTMLPanel styleName="{style.outsidePanel}">
Hello, World!
</g:HTMLPanel>
在上面的例子中,你可以編輯界面內的CSS:樣式部分,按F5和看到的變化,然後做出更多的變化等無需複製文件過度。
這裏有一個很好的鏈接以獲得更多信息:https://developers.google.com/web-toolkit/doc/latest/DevGuideUiBinder#Hello_Stylish_World
第三種方法是使用谷歌Chrome瀏覽器的開發者工具(CTRL-Shift-I鍵)或F12在Firefox。在那裏你可以在不修改你的文件的情況下編輯CSS內聯。 Fiugure輸出所有正確的值,添加新的,刪除舊的,然後對CSS文件進行相同的更改。然後,您不必保持重新部署即可查看更改。我個人使用#2和#3的組合。
該問題的作者實際上主張使用CSS Client Bundle,而不是在UI中輸入CSS:Binder,我認爲這是最糟糕的選擇。應用程序中的每個CSS規則都必須在同一個地方編寫一次 - 如果需要更改,任何其他方法都會導致不一致並需要大量工作,更不用說不支持多個皮膚。 – 2012-09-16 12:50:09
我使用外部CSS文件,我的應用程序,我立刻看到在簡單的刷新(不排空緩存,服務器重啓等),我的瀏覽器Chrome和Firefox的所有變更。
該問題可能與您的文件的位置有關。我的文件位於/ war目錄中,我直接編輯它。另一種可能是你如何在你的主頁中引用你的文件。確保你有一個像「/myCss.css」的相對路徑。
的問題是,在開發模式中的src WebApp文件夾複製只在啓動時的目標,和DevMode的不刷新。作爲解決方法,您可以使用copy-resources,即時處理應用更改。
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/gwt-webapp</outputDirectory>
<resources>
<resource>
<directory>src/main/webapp</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
嘗試將線<stylesheet src="sheet.css" />
或<stylesheet src="/sheet.css" />
到您project.gwt.xml文件。
問候,
埃迪
我不知道我完全信任CTRL + F5 - 你可以嘗試要通過瀏覽器的菜單來清除高速緩存,看看是否有差別。 – 2012-08-15 13:54:06
無論如何,「開發模式」視圖中的「重新啓動服務器」按鈕(這是兩個圓形的黃色箭頭)應該按照您的要求進行操作。但我也經歷過同樣的事情;它並不總是削減它。 – 2012-08-15 13:55:45
重新加載Web服務器不起作用。我使用的是經典的CSS文件,但是我的同事在不同的項目中使用GWT來告訴我關於使用資源束https://developers.google.com/web-toolkit/doc/latest/DevGuideClientBundle加載不同CSS文件的信息。我還沒有研究它,但我會在稍後看看,我會發布一些經驗。謝謝你的建議。 – Gondri 2012-08-15 14:09:00