Asp.net mvc 4 如何使用IIS7虚拟目录跨项目使用公共文件

Asp.net mvc 4 如何使用IIS7虚拟目录跨项目使用公共文件,asp.net-mvc-4,virtual-directory,Asp.net Mvc 4,Virtual Directory,场景: 我对ASP.NETMVC编程非常陌生,经常遇到在多个项目中使用公共文件(.js、.css)的麻烦。 我们的想法是将这些通用文件放在一个位置,这样可以方便地在将来进行更新,并避免在所有项目中出现“复制和粘贴”的困境。我已经在IIS7中将此文件夹设置为默认网站中的虚拟目录,别名为“CommonFiles” 问题: 在MVC-4中,我试图将js文件添加到脚本包中,但在运行应用程序时,它根本不会拾取文件。(在页面源代码中选中,并添加了一个js函数作为测试) BundleConfig.cs中的代码

场景:

我对ASP.NETMVC编程非常陌生,经常遇到在多个项目中使用公共文件(.js、.css)的麻烦。 我们的想法是将这些通用文件放在一个位置,这样可以方便地在将来进行更新,并避免在所有项目中出现“复制和粘贴”的困境。我已经在IIS7中将此文件夹设置为默认网站中的虚拟目录,别名为“CommonFiles”

问题:

在MVC-4中,我试图将js文件添加到脚本包中,但在运行应用程序时,它根本不会拾取文件。(在页面源代码中选中,并添加了一个js函数作为测试)

BundleConfig.cs中的代码段:

bundles.Add(new ScriptBundle("~/bundles/test").Include("~/CommonFiles/test.js"));
在_Layout.cshtml中呈现:

@Scripts.Render("~/bundles/test")
我读过不少帖子( (尽管是asp webforms),但我担心我对MVC的缺乏会限制我前进的道路,我真的希望了解一下MVC是如何处理IIS虚拟目录的,鉴于我在上面读到的最后一篇文章,这是否是一种简单的可能性


这可以在MVC-4中实现吗?如果不能,那么在跨项目重用通用代码方面,第二个最佳选择是什么?

在阅读了kev()的一篇文章后,它让我走上了正确的道路,我遇到的问题实际上令人尴尬

为了让其他开发人员在visual studio中遇到类似的问题,这是解决我的问题的方法:

问题:

我使用一个单独的项目,其中包含跨多个其他项目使用的文件。我在IIS7中创建了一个引用这些文件的虚拟文件夹。这意味着,如果需要对公共文件进行更改,它将更新一次,所有其他项目将自动“看到”更改

我的其他单个项目使用脚本绑定来包括仅与所述项目相关的文件,而且还引用IIS中定义的虚拟文件夹中的公共文件

我的MVC-4 web应用程序在调试或发布时都没有按照上述语法拾取公共文件

解决方案:

在VS2012中开发时,在项目的属性下,“web”选项卡下有一个设置,您可以在其中指定是要使用本地IIS web服务器还是IIS Express来测试应用程序。IIS Express向站点添加一个随机端口,以进行测试,并允许多个站点实例(在不同的端口上)运行。这似乎将虚拟目录包含在捆绑包中

在我看来,选择使用本地IIS服务器更接近“实时”环境。只需取消勾选“使用IIS Express”设置

作为旁注,有关IIS和IIS express使用之间的区别以及它是否适合您的环境(就像我的环境一样)的更多信息,请参阅以下链接:

希望这对将来的人有所帮助,并为他们节省我在这方面浪费的时间