2009-10-14 6 views
22

Ich bin vor kurzem zu einem Website-Projekt zurückgekehrt, das auf dem Backburner war. Seit der Wiederaufnahme der Arbeit habe ich festgestellt, dass CSS- und JavaScript-Änderungen von der Anwendung nicht erkannt werden, wenn sie in Visual Studio Development Server ausgeführt wird. Das hat vorher gut funktioniert. Ich könnte Stylesheets und Javascript ändern und die App ausführen und testen. Jetzt kann ich die Anwendung nur testen, indem ich sie auf meinem lokalen IIS-Server veröffentliche (obwohl ich glaube, dass das Neustarten meines PCs das Problem auch behebt).Visual Studio Development Server nicht CSS und JavaScript aktualisieren?

mit Visual Studio 2008 (9.0.30729.1)

Die Dinge, die geändert haben, seit ich bin sicher, es funktioniert das Betriebssystem richtig ist, von Vista x64 Home Premium Edition 7 x64 Ultimate zu gewinnen und ich habe Die Projektquelle wurde von c: nach d: verschoben. Obwohl ich zurück nach C gezogen bin: mit den gleichen negativen Ergebnissen. Ich habe auch einige Funktionen in separaten WCF-Diensten verschoben, die von Konsolen-Apps (zwei Service-Hosts) gehostet werden, die beim Debuggen der Website in Debug-Modus versetzt werden.

Stoppen des Dev-Servers tut nichts. Auschecken (mit VSS 2005) Alle Dateien, um sicherzustellen, dass nichts gelesen wird, tun nichts. Das einzige, was funktioniert, ist das Veröffentlichen in IIS oder das Neustarten meines Computers. Beide unerwünscht. Ich werde sogar zufrieden sein, wenn es einen Prozess gibt, den ich jedes Mal beenden muss, wenn ich mit dem Debuggen aufhöre, um sicherzustellen, dass keine früheren Kopien von Dingen verwendet werden.

Irgendwelche Lösungen?

+0

Obwohl es _manual_Antworten für diese (Strg + F5) gibt, habe ich immer noch ein Microsoft Connect-Problem erstellt, um zu versuchen, und die IDE-Entwicklungsumgebung diese Schritte automatisch vornimmt. Sehen Sie es hier: https://connect.microsoft.com/VisualStudio/feedback/details/800421/visual-studio-development-server-not-reflecting-updated-css – atconway

Antwort

29

Der Server sendet möglicherweise Kopfzeilen an den Browser, die dafür sorgen, dass zwischengespeicherte Kopien weiterhin verwendet werden. Der einfache Weg, dies zu testen, ist emptyyourbrowsercache.

Wenn das behebt, müssen Sie die HTTP headers lernen, die Sie vom Server erhalten. Die developertools (a.k.a. F12 tools) in Ihrem Browser Ihrer Wahl wird die vom Server zurückgegebenen Header verfügbar machen. Entscheiden Sie dann, ob Sie diese Caching-Einstellungen (good for speed) weiterhin verwenden oder ändern möchten (good for development).

Und wie passen Sie diese Header, fragen Sie? Es hängt vom Server ab. Hier ist ein Link auf die Anweisungen zum gemeinsamen Server:

+1

Vielen Dank! Das Löschen des Browser-Cache hat das Problem behoben. Ich wünschte, ich hätte dies vor drei Tagen versucht :) –

+13

Eine einfachere Möglichkeit, dies zu tun wäre drücken STRG + F5 in Ihrem Browser – sshow

+6

Dies funktioniert nicht für mich. Getestet mit 4 verschiedenen Browsern. Leerte den Cache auf alle von ihnen. Drücke STRG + F5 öfter als ich zählen konnte. Der Asp.net-Entwicklungsserver möchte einfach nicht mit irgendwelchen Änderungen an markup/css/javascript aktualisiert werden. Das Stoppen und Starten des Testservers ist die einzige Möglichkeit, Änderungen zu erkennen. – NinjaBomb

5

Eine schnelle Möglichkeit ist zufällig Parameter nach dem Skript oder CSS-Datei src-Attribute hinzufügen. zum Beispiel

<script type="javascript" src="@Url.Content("~/scripts/myScripts.js?" + DateTime.Now.ToString("ddMMHHmmss")"></script> 

so Browser wird davon ausgehen, es ist immer eine neue Datei und wird nicht Cache.

Achten Sie darauf, diese beim Bereitstellen auf einem Live-Server zu entfernen.

0

Versuchen

<link href"~/Content/Style.css" rel="stylesheet"/>

zusammen mit Bündeln zu verwenden.Dies funktionierte für mich

Verwandte Themen