あなたのjavascriptファイル用のカスタムハンドラを書くことでこれを行うことができます。 MVCプロジェクトのWeb.Config
ファイルで、httpHandlers
セクションを探します。次の行のようなものを追加します。私はこのコードをテストしていない
class CustomHandler : IHttpHandler
{
#region IHttpHandler Members
public bool IsReusable
{
get { return true; }
}
public void ProcessRequest(HttpContext context)
{
// Set any headers you like here.
context.Response.Expires = 0;
context.Response.Cache.SetExpires(DateTime.Parse("3:00:00PM"));
context.Response.CacheControl="no-cache";
// Determine the script file being requested.
string path = context.Request.ServerVariables["PATH_INFO"];
// Prevent the user from requesting other types of files through this handler.
if(System.Text.RegularExpressions.RegEx.Match(path, @"/YourScriptsFolder/[^/\\\.]*\.js"))
context.Response.Write(System.IO.File.ReadAllText(path));
}
#endregion
}
:
<add verb="GET" path="/YourScriptsFolder/*.js" type="Your.Project.Namespace.And.Custom.Handler, Your.Assembly.Name" validate="false" />
これは、このようになりますどのカスタムハンドラを介して、そのフォルダ内のjsファイルに対するすべての要求を強制しますあなたはいくつかの問題にぶつかる可能性がありますが、これは基本的な考え方です。 ASP.Netのカスタムハンドラには、Web全体で多くの例があります。ここでは良い例です:
使用しているバージョンのIIS
http://www.developer.com/net/asp/article.php/3565541/Use-Custom-HTTP-Handlers-in-Your-ASPNET-Applications.htm
なぜあなたはjavascriptファイルに対応できないのですか? –
コントローラの操作によってアクセスされないためですか? – Damien
他のファイル(画像、CSSなど)と同じように、コントローラの操作でアクセスできない理由はありません。物理的な* .jsファイルが要求されているように見えるルートを使用することもできます。つまり、サイト内のjavascriptファイルのURLを変更せずに行うことができます。 –