我有一个可视化工作室解决方案,其中包含多个具有相同外观和感觉的telerik MVC4剃须刀项目.我不想在所有MVC4项目中复制相同的布局,CSS /样式,图像和js文件.实现这种可重用性的最佳方法是什么?我尝试创建一个commonUI项目的虚拟目录,并试图在_ViewStart.cshtml中使用
http://localhost/ …引用_layout.cshtml,但它抱怨说“http:/localhost/MyMvcApp/Views/Shared/_Layout.cshtml”不是有效的虚拟路径.“
请帮忙!
解决方法
四条建议:
1)查看区域,也许不是单独的项目,这些是同一系统的真正不同组件(管理员等)?
2)使用在visual studio中添加现有项目并通过链接添加项目.这仍然会复制它们以进行部署,但您可以保留一个源.
3)考虑通过构建自己的nuget包来做到这一点.这样,虽然您可以复制CSS和图像,但您可以将其打包并根据需要更新软件包.好处是你可以更新一个项目,而不必重新测试另一个项目(如果它们是分开的,1)不适用).
4)我发现这个比其他人更丑,但是在IIS中我相信你可以在文件夹中映射,所以你可以通过项目中的链接引用这些文件,而不是在那里部署它们,然后在部署时使用相应的文件夹映射单一的源路径.
我知道无法分享应用程序路径.
编辑:
我以前从未尝试过这个,所以不能保证它的工作,但可能在一个单独的项目中编译你的共享项目,然后在所有其他项目中引用DLL.
我发现的参考是这个,但我再次证实这是有效的,只是认为这可能是一条可行的探索之路:
http://www.chrisvandesteeg.nl/2010/11/22/embedding-pre-compiled-razor-views-in-your-dll/