Visual Studio Development Server not updating css

2019-01-18 02:15发布

问题:

I've recently returned to a web site project that has been on the backburner. Since recommencing work I've noticed css and javascript changes aren't being recognised by the application when it's running in Visual Studio Development Server. This previously worked fine. I could change stylesheets and javascript and run the app and test. Now the only way I can test the application is to publish it to my local IIS server (though I believe restarting my pc also fixes the problem).

Using Visual Studio 2008 (9.0.30729.1)

The things that have changed since I am certain it was working correctly is the operating system, from Vista x64 Home Premium Edition to Win 7 x64 Ultimate and I've moved the project source from c: to d:. Though I moved back to C: with the same negative results. I've also moved some functionality out in seperate WCF services, hosted by console apps (two service hosts) which are put into debug when the web site starts up in debug.

Stopping the dev server does nothing. Checking out (using VSS 2005) ALL the files to ensure nothing is read only does nothing. The only thing that works is publishing to IIS or restarting my machine. Both undesirable. I'll even be satisfied if there's a process I need to terminate each time I stop debugging, to ensure not using previous copies of things.

Any solutions?

回答1:

The server may be sending headers to the browser that cause it to keep using cached copies. The simple way to test this is to empty your browser cache.

If that fixes it, you need to study the HTTP headers you get from the server. The developer tools (a.k.a. F12 tools) in your browser of choice will expose the headers returned by the server. Then decide if you want to keep using these caching settings (good for speed) or change them (good for development).

And how do you adjust these headers, you ask? It depends on the server. Here is a link to the instructions for common servers:

  • Apache
  • nginx
  • IIS


回答2:

A quick way is to add random parameters after the script or css file's src attribute. for example

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

so browser will always assume its a new file and will not cache.

Be sure to remove this when deploying on live server.



回答3:

Try to use

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

together with bundles. This worked for me