我正在使用ASP.NET MVC4和WinHost。如何使用URL重寫和ASP.NET優化的捆綁包管理winhost上的子域
就像問問題here,我碰到了同樣的問題:
我嘗試WinHost和我遇到一些問題, 子域。在WinHost上,您可以爲每個託管 帳戶擁有多個子域,但每個子域指向根網站。例如。你可以在 有www.example.com,sub1.example.com和sub2.example.com,但是所有 都顯示http://www.example.com/的內容。
其他主機允許您將子域指向 網站中的子文件夾。這將允許您將sub1.example.com指向/ sub1, sub2.example.com,將/ sub2和www.example.com指向/。
WinHost建議使用一個asp/aspx頁面重定向 http://sub1.example.com到http://sub1.example.com/sub1,它指向 到/ SUB1。雖然這將工作,我想沒有在 的URL兩次的子域。
所以我嘗試使用IIS7 URL重寫指向http://sub1.example.com到 /sub1。本鮑威爾在his blog上詳細描述了這一點。
我設法讓這部分工作,所以http://sub1.example.com實際上指向我的虛擬應用程序「/ sub1」在IIS中。
如果我使用Url.Content,它可以完美地工作。
現在,我正在使用ASP.NET優化和捆綁腳本和CSS。問題是,它確實需要一個相對URL,即:
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
但是,因爲它在這裏相對URL是什麼,我會在標記得到:
<script src="/sub1/bundles/jqueryval?v=UgyEMAYOuSB9Bb6HcOEVHpd6fIIp54yF086SRNVcdIY1"></script>
當然,因爲「SUB1的, 「它沒有找到該文件。我想到了URL重定向,我從來沒有真正的工作。也許MVC中的路線?不確定如何做到這一點。我也可以放棄捆綁使用「Url.Content」,我認爲這很令人傷心。
什麼是處理這個問題的最好方法?
我的問題是真正的「Script.Render(...)」函數呈現虛擬目錄。 – 2013-04-10 11:11:22
你說你已經在iis中配置了一些重寫規則。我想知道是否可以使用RouteConfig.RegisterRoutes(RouteTable.Routes)在啓動代碼中捕獲路由問題? – 2013-04-10 20:08:50