Why adding version number to CSS file path?
From HTML5 ★ Boilerplate Docs:
What is ?v=1" '?v=1' is the JavaScript/CSS Version Control with
CachebustingWhy do you need to cache JavaScript CSS? Web page designs are getting
richer and richer, which means more scripts and stylesheets in the
page. A first-time visitor to your page may have to make several HTTP
requests, but by using the Expires header you make those components
cacheable. This avoids unnecessary HTTP requests on subsequent page
views. Expires headers are most often used with images, but they
should be used on all components including scripts, stylesheets etc.How does HTML5 Boilerplate handle JavaScript CSS cache? HTML5
Boilerplate comes with server configuration files: .htacess,
web.config and nginx.conf. These files tell the server to add
JavaScript CSS cache control.When do you need to use version control with cachebusting?
Traditionally, if you use a far future Expires header you have to
change the component's filename whenever the component changes.How to use cachebusting? If you update your JavaScript or CSS, just
update the "?v=1" to "?v=2", "?v=3" ... This will trick the browser
think you are trying to load a new file, therefore, solve the cache
problem.
what is style.css?ver=1 tag?
To avoid caching of CSS.
If the website updates their CSS they update the ver to a higher number, therefore browser is forced to get a new file and not use cached previous version.
Otherwise a browser may get a new HTML code and old CSS and some elements of the website may look broken.
app_themes css files and version number
I'd try something like this
<link
rel="stylesheet"
href="/app_themes/blue/blue.css?v=<%=Global.VERSION_NUM%>">
Do that to all your CSS references, then when you make a deployment to your live site, you can just change the constant VERSION_NUM
What does appending ?v=1 to CSS and JavaScript URLs in link and script tags do?
These are usually to make sure that the browser gets a new version when the site gets updated with a new version, e.g. as part of our build process we'd have something like this:
/Resources/Combined.css?v=x.x.x.buildnumber
Since this changes with every new code push, the client's forced to grab a new version, just because of the querystring. Look at this page (at the time of this answer) for example:
<link ... href="http://sstatic.net/stackoverflow/all.css?v=c298c7f8233d">
I think instead of a revision number the SO team went with a file hash, which is an even better approach, even with a new release, the browsers only forced to grab a new version when the file actually changes.
Both of these approaches allow you to set the cache header to something ridiculously long, say 20 years...yet when it changes, you don't have to worry about that cache header, the browser sees a different querystring and treats it as a different, new file.
Related Topics
Bootstrap 3 - Desktop View on a Mobile Device
How to Vertically Align <Li> Elements in <Ul>
What Does an "&" Before a Pseudo Element in CSS Mean
Svg in Img Element Proportions Not Respected in IE9
Using CSS, Can You Apply a Gradient Mask to Fade to the Background Over Text
Enable :Focus Only on Keyboard Use (Or Tab Press)
Import .CSS File into .Less File
React Native Text Going Off My Screen, Refusing to Wrap. What to Do
Image Moves on Hover - Chrome Opacity Issue
iOS 7 iPad Safari Landscape Innerheight/Outerheight Layout Issue
Make Child Visible Outside an Overflow:Hidden Parent
How to Transition CSS Display + Opacity Properties
What Is the Meaning of 'Auto' Value in a CSS Property
Automatically Resize Images with Browser Size Using CSS
How to Change the Height of an Image in CSS :Before/:After Pseudo-Elements
How to Select All Children of an Element Except the Last Child