Я также вижу, что этот вопрос древний, но подумал, что я бы добавил свои два цента ...
У меня есть файл 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"
));
}
}
Затем вам нужно добавить это в Application_Start в вашем global.asaxфайл (прямо рядом с регистрацией маршрутов)
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