আমি একটি প্রাথমিক পরীক্ষা "স্যুট" তৈরি করেছি।
আমি যখন আইআইএস .0.০ এ একটি ন্যূনতম ওয়েবকনফিগ দিয়ে পরীক্ষাগুলি চালিত করি (.NET 4.0 এ ইন্টিগ্রেটেড পাইপলাইন মোড) সমস্ত কিছু পাস হয়; যখন অনুরোধের শিরোনামটি ফাইলটির সাথে মেলে না তখন পরীক্ষা ফাইলটির Cache-Control
প্রতিক্রিয়া শিরোনাম সেট করা হয় ।private
Accept
Content-Type
এটি আমাকে বিশ্বাস করতে পরিচালিত করে যে আপনার আইআইএসের স্থিতিশীল ক্যাচিং রুটিন বা আইআইএস 7.0 এবং 7.5 এর চেয়ে পৃথক হওয়া কিছু মডিউল রয়েছে।
আমি যে ফাইলগুলি ব্যবহার করেছি তা এখানে রয়েছে ( some-script.js
এটি কেবল একটি খালি ফাইল হ'ল )
Web.Config:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0">
</compilation>
</system.web>
<system.webServer>
<staticContent>
<!-- Set expire headers to 30 days for static content-->
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
</staticContent>
</system.webServer>
</configuration>
test.html:
<!doctype html>
<html>
<head>
<title>http://serverfault.com/questions/346975</title>
<style>
body > div
{
border:1px solid;
padding:10px;
margin:10px;
}
</style>
</head>
<body>
<div>
<h2>Request JS file with Accepts: accept/nothing</h2>
<b>Response Headers: </b>
<pre id="responseHeaders-1">loading&hellip</pre>
</div>
<div>
<h2>Request JS file with Accepts: */*</h2>
<b>Response Headers: </b>
<pre id="responseHeaders-2">loading&hellip</pre>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
var responseHeaders1 = $("#responseHeaders-1"),
responseHeaders2 = $("#responseHeaders-2"),
fetchScript = function (accepts, element, successMsg, errorMsg) {
var jXhr = $.ajax({
// fetch the resource "fresh" each time since we are testing the Cache-Control header and not caching itself
"url": "some-script.js?" + (new Date).getTime(),
"headers": {
"Accept" : accepts
},
"complete": function () {
var headers = jXhr.getAllResponseHeaders();
headers = headers.replace(/(Cache-Control:.+)/i, "<strong><u>$1</u></strong>");
element.html(headers);
},
"success": function () {
element.after("<div>" + successMsg + "</div>");
},
"error": function () {
element.after("<div>" + errorMsg + "</div>");
}
});
};
fetchScript("accept/nothing", responseHeaders1, "Uh, your server is sending stuff when the client doesn't accept it.", "Your server (probably) responded correctly.");
fetchScript("*/*", responseHeaders2, "Your server responded correctly.", "Something went wrong.");
</script>
</body>
</html>