2014-03-26 11 views
0

場景:如何使用IIS7的虛擬目錄,使整個項目中使用的通用文件

我很新的ASP.Net MVC編程和運行到牆上不斷嘗試利用公共文件(.js,.css)跨越多個項目。 這個想法是將這些通用文件放在1個位置,這樣可以方便將來進行更新,並避免所有項目中的「複製和粘貼」困境。我已經在IIS7中將此文件夾設置爲具有別名「CommonFiles」的默認網站中的虛擬目錄。

問題:

隨着MVC-4我想給JS文件添加到一個腳本包,但一旦運行它沒有采摘的文件根本上的應用。 (在頁面的源代碼檢查,還增加了一個js函數作爲測試)在BundleConfig.cs

代碼片段:

bundles.Add(new ScriptBundle("~/bundles/test").Include("~/CommonFiles/test.js")); 

渲染_Layout.cshtml:

@Scripts.Render("~/bundles/test") 

我已經閱讀了不少帖子( Script Bundling in WebForms with Virtual Directories(asp webforms雖然),How to add reference to System.Web.Optimization for MVC-3-converted-to-4 app,ScriptBundle not rendering scripts that are in a VirtualDirectory)但我擔心我缺乏對MVC的知識會限制我的前進方向,並且真的希望能夠深入瞭解MVC如何處理IIS虛擬直接ories,如果這是一個簡單的可能性給予我上面閱讀的最後一篇文章。

這是否可以在MVC-4中完成,如果不是在跨項目重複使用通用代碼的第二個最佳選擇是什麼?

回答

0

在閱讀kev(Using ServerManager to create Application within Application)的帖子之後,它讓我走上了正確的道路,我遇到的問題實際上令人尷尬。

對於其他開發者登陸這個帖子在Visual Studio中的類似問題的緣故,這是固定我的問題:

問題:

我使用一個單獨的項目中包含在多個其他項目中使用的文件。我在IIS7中創建了一個引用這些文件的虛擬文件夾。這意味着如果需要對通用文件進行更改,則需要更新一次,所有其他項目都會自動「查看」更改。

我的其他個人項目使用腳本綁定來包含僅與該項目相關的文件,而且還引用IIS中定義的虛擬文件夾中的常用文件。

我的MVC-4的Web應用程序是不是採集公用文件上面給出的語法,既不調試或發行..

解決方案:

當VS2012開發,根據項目的屬性,在Web選項卡下有一個設置,您可以在其中指定是否要使用本地IIS Web服務器或IIS Express來測試您的應用程序。 IIS Express爲站點添加一個隨機端口以測試並允許多個站點的實例運行(在不同的端口上)。這似乎將虛擬目錄包含在捆綁中。

Using IIS Express

選擇使用本地IIS服務器更接近於什麼是「活」的環境將是我的意見。只需取消勾選「使用IIS Express」設置即可。

enter image description here

作爲一個側面說明以及有關IIS和IIS快遞的使用之間的區別是什麼的詳細信息以及它是否適合你的環境(因爲它是我的)看到此鏈接:

http://msdn.microsoft.com/en-us/library/58wxa9w5.aspx

希望這有助於未來的人,並節省他們浪費在此的時間!

相關問題