Javascript 捆绑包和虚拟路径

Javascript 捆绑包和虚拟路径,javascript,asp.net-mvc,angularjs,Javascript,Asp.net Mvc,Angularjs,我正在使用angular、mvc和WebAPI建立一个新网站。静态内容(js、css、图像等)将在站点A中,MVC站点将在站点B中,api将在站点C中。这些都是单独的站点,而不是虚拟目录。我正在尝试在MVC站点中使用绑定来绑定静态站点中的js和css文件,以便在MVC站点中使用 我已经设置了一个虚拟路径提供程序,但是当我加载站点时,angular不起作用,也不会抛出任何错误。我假设angular.js文件不是从包中加载的,因为如果我包含一个本地javascript文件,angular就可以工作

我正在使用angular、mvc和WebAPI建立一个新网站。静态内容(js、css、图像等)将在站点A中,MVC站点将在站点B中,api将在站点C中。这些都是单独的站点,而不是虚拟目录。我正在尝试在MVC站点中使用绑定来绑定静态站点中的js和css文件,以便在MVC站点中使用

我已经设置了一个虚拟路径提供程序,但是当我加载站点时,angular不起作用,也不会抛出任何错误。我假设angular.js文件不是从包中加载的,因为如果我包含一个本地javascript文件,angular就可以工作


我想做的事可能吗?如果是这样,怎么做?

虚拟路径提供程序仅适用于视图,而不适用于CSS和JS之类的内容。不幸的是,没有一个好的方法来处理这种情况。捆绑程序只能对同一项目中的文件执行操作,而不能对单独项目中的文件执行操作。如果你想要一个单独的站点来处理你的静态资产,那么你几乎只需要直接引用它们。您可以使用Web.config的app settings部分来设置静态站点的基本URL(这样,如果以后需要更改,您只有一个地方可以去,您可以在上面运行转换等操作,以便在生产中具有不同的价值)。这也意味着您在某种程度上需要自己进行捆绑和缩小。但是,您也可以将静态站点设置为MVC站点,以便获得绑定基础设施,然后使用该站点处理绑定。您的所有捆绑包都应该位于
/Content/[style bundle name].css
/bundles/[script bundle name].js的标准位置。路径中添加了一个缓存破坏字符串,但您可以手动处理该字符串。

虽然这个答案基本正确,但您可以对CSS和JS使用虚拟路径提供程序。您需要使用web.config的handlers部分中的StaticFileHandler确保这些请求由ASP.NET处理。当然,您不能执行跨站点虚拟路径。您可能还存在跨域问题。我不确定其中的细微差别,但如果您的脚本、视图和API都在不同的域中,浏览器可能会非常难过。