|
/*
* Smart Include
*
* Copyright (c) 2010 Fredrik Schultz
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
*/
using System;
using System.Web;
namespace Kaliko.SmartInclude {
/// <summary>
/// Used to return the correct compressed file to the browser.
/// </summary>
public class GetPackedFile : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
string type = Request.QueryString["t"];
bool isCss = type == "css";
string filename = Config.IncludeFilePath +
(Request.QueryString["v"] ?? "").Replace("..", "").Replace("\\", "").Replace("/", "") +
(isCss ? ".css" : ".js");
Response.ContentType = isCss ? "text/css" : "text/javascript";
if (Common.IsGzipAccepted) {
filename += ".gz";
Response.AddHeader("Content-Encoding", "gzip");
}
// Tell client to cache this exact version for a year. If any of the files
// that is included in the file is changed a new version will be created
// to replace this cached version.
Response.Cache.SetCacheability(HttpCacheability.Private);
Response.Cache.SetExpires(DateTime.Now.AddYears(1));
Response.Cache.SetNoServerCaching();
Response.WriteFile(filename);
Response.End();
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.