4

調試模式(例如捆綁關閉)下運行時,有什麼辦法可以使ASP.NET 4.5捆綁功能生成GUID作爲查詢字符串的一部分。ASP.NET 4.5在調試模式下捆綁 - 陳舊的資源

問題是本地開發時,腳本/ CSS文件是這樣產生的:

<script type="text/javascript" src="/Content/Scripts/myscript.js" /> 

所以,如果我改變這個文件,我需要做一個硬刷新(有時幾次)以得到的文件被瀏覽器拿起 - 煩人。

有什麼辦法可以讓它呈現出這樣的:

<script type="text/javascript" src="/Content/Scripts/myscript.js?v=x" /> 

x是GUID(例如始終是唯一的)。

想法?

我在ASP.NET MVC 4

回答

4

直到NuGet包在上面打補丁按照對方的回答,現在我已經結束了使用相同的包裝代碼我做了測試版的NuGet包:

private static IHtmlString JsUnbundled(this HtmlHelper htmlHelper, string bundlePath) 
{ 
    var jsBuilder = new StringBuilder(); 
    foreach (var file in BundleResolver.Current.GetBundleContents(bundlePath)) 
    { 
     var tagBuilder = new TagBuilder("script"); 
     tagBuilder.Attributes["src"] = file.AddCacheKey(); // add GUID 
     tagBuilder.Attributes["type"] = "text/javascript"; 
     jsBuilder.AppendLine(tagBuilder.ToString()); 
    } 
    return MvcHtmlString.Create(jsBuilder.ToString()); 
} 

我再有另一個HTML幫手其中檢查是否調試,然後使用以上 - 其他的使用Scripts.Render

顯然這不會做文件的任何形式的散列 - 它總是會請求文件。但我不介意這一點,因爲它只用於調試。

1

目前,我們沒有檢查調試模式下文件的內容,但我們可以添加此功能。

我將它作爲codeplex here上的問題提出。

+0

好的,謝謝。現在猜猜病毒包裝了一個IF DEBUG條件來渲染文件,然後添加一個緩存鍵。 – RPM1984

+0

此功能是否實施?如果是這樣,你怎麼打開它? – Marie

相關問題