我在IIS中有一個網站,網站下面有幾個web應用程序(網站和web應用程序都是mvc web應用程序)。MVC捆綁:如何在兒童webapp中使用家長網站捆綁資源?
網站使用ASP.NET MVC捆綁 -
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new StyleBundle("~/Content/css")
.IncludeDirectory("~/Content/Styles", "*.css", true));
bundles.Add(new ScriptBundle("~/Content/js")
.IncludeDirectory("~/Content/Scripts", "*.js", true));
}
在網站_Layout.cshtml -
@Styles.Render("~/Content/css")
@Script.Render("~/Content/js")
當網站瀏覽(如mywebsite.com),我可以看到查詢字符串附加到那些參考。
<link href="/Content/css?v=asdsf$dfsdfdslkko" rel="stylesheet" />
<script src="/Content/[email protected]"></script>
以及在IIS該網站在我孩子的web應用程序,如果我必須使用相同的捆綁的資源,我可以做(在Web應用程序佈局頁) -
@Styles.Render("/Content/css")
@Script.Reder("/Content/js")
當web應用程序瀏覽(例如mywebsite.com/mywebapp),我可以從父網站訪問這些資源,但我無法在樣式和腳本引用中獲得這些querystrings。
<link href="/Content/css" rel="stylesheet" />
<script src="/Content/js></scripts>
唯一的區別是我必須使用開始/
爲web應用這是不產生查詢字符串的原因。這是一個奇怪的行爲。我在瀏覽webapp時也需要querystring(以避免緩存)。如果我在我的父網站中使用/
而不是~
,querystring會消失(DISGUSTING)。
是否仍然保留查詢字符串,即使使用/
來引用捆綁包?任何幫助將不勝感激。 在此先感謝。
爲什麼要避免在捆綁資源上緩存,爲什麼? – Hackerman
querystring只有在底層資源被修改時才被修改,如果沒有被修改,我們可以從瀏覽器緩存中獲取它們。 –