我也能看到這個問題是古老的,但認爲我想補充我的兩分錢在我的博客文章作品...
我有一個單獨的項目的JavaScript文件。我添加了一個鏈接引用,這對於發佈很適用,但在IIS Express或Casinni中不起作用。我試圖添加自定義路由來捕獲丟失的文件並手動重新映射它,但它有點破解,並且出於某種原因在升級到MVC 5.1時停止工作,所以我沒有修復破解,我找到了更好的方法:
System.Web.Optimization
有javascript包。
在您的共享項目中,將Copy To Output Directory
設置爲「始終複製」並將Build Action
設置爲js文件中的「內容」。這意味着你的js文件最終在你的網站項目的bin文件夾中。它們不能從那裏提供服務(IIS不會服務於一個明顯的安全原因bin文件夾中的任何東西),但它們可以被包含在捆綁
using System.Web;
using System.Web.Optimization;
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/externalLibrary").Include(
"~/bin/scripts/externalLibrary.js"
));
}
}
然後需要這在Global.asax文件添加到的Application_Start(註冊路由)
BundleConfig.RegisterBundles(System.Web.Optimization.BundleTable.Bundles);
然後用你的捆綁鏈路,這在你的剃鬚刀CSHTML旁邊:
<script type='text/javascript' src='@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/bundles/externalLibrary")'></script>
您需要的NuGet包爲microsoft.aspnet.web.optimization
很好的問題,我一直在思考這個問題很長一段時間。在我腦海中彈出的唯一解決方案是將這些文件託管在網絡上並使用它們,如cdn或使用符號鏈接。您可以將代碼片段添加到您的Visual Studio中以引用它們。 – Blowsie 2011-05-24 08:16:58