2012-08-15 55 views
10

我正在託管模式下在Eclipse中開發GWT應用程序。GWT + Eclipse - 如何刷新靜態資源,如CSS

當我改變CSS中的東西時,我無法在瀏覽器中看到它。我正在嘗試使用CTRL + F5在瀏覽器中完全重新加載,在Eclipse中重新啓動我的應用程序並且沒有任何更改。

這有助於

唯一的事情就是使用Maven乾淨重建我的應用程序安裝,在Eclipse重新啓動應用程序,然後我可以看到的變化。這需要很長時間。

任何想法我做錯了什麼?我認爲一定有更好的辦法。

問候,盧卡斯

+0

我不知道我完全信任CTRL + F5 - 你可以嘗試要通過瀏覽器的菜單來清除高速緩存,看看是否有差別。 – 2012-08-15 13:54:06

+0

無論如何,「開發模式」視圖中的「重新啓動服務器」按鈕(這是兩個圓形的黃色箭頭)應該按照您的要求進行操作。但我也經歷過同樣的事情;它並不總是削減它。 – 2012-08-15 13:55:45

+0

重新加載Web服務器不起作用。我使用的是經典的CSS文件,但是我的同事在不同的項目中使用GWT來告訴我關於使用資源束https://developers.google.com/web-toolkit/doc/latest/DevGuideClientBundle加載不同CSS文件的信息。我還沒有研究它,但我會在稍後看看,我會發布一些經驗。謝謝你的建議。 – Gondri 2012-08-15 14:09:00

回答

0

有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的組合。

+3

該問題的作者實際上主張使用CSS Client Bundle,而不是在UI中輸入CSS:Binder,我認爲這是最糟糕的選擇。應用程序中的每個CSS規則都必須在同一個地方編寫一次 - 如果需要更改,任何其他方法都會導致不一致並需要大量工作,更不用說不支持多個皮膚。 – 2012-09-16 12:50:09

1

我使用外部CSS文件,我的應用程序,我立刻看到在簡單的刷新(不排空緩存,服務器重啓等),我的瀏覽器Chrome和Firefox的所有變更。

該問題可能與您的文件的位置有關。我的文件位於/ war目錄中,我直接編輯它。另一種可能是你如何在你的主頁中引用你的文件。確保你有一個像「/myCss.css」的相對路徑。

2

的問題是,在開發模式中的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> 
0

嘗試將線<stylesheet src="sheet.css" /><stylesheet src="/sheet.css" />到您project.gwt.xml文件。

問候,

埃迪