我们为各个公司/部门提供了一些不同的内部网站点。很多内容在它们之间是独一无二的,但它们确实有一些共享组件。
我们当前的部署设置(很糟糕)涉及使用Visual Studio中的“复制网站”工具在项目目录和服务器上的部署位置之间复制/同步文件。然后在服务器上的IIS中,我们可以设置指向共享项目的虚拟目录(主要是.aspx页面)。这些页面在站点的根目录中查找标准母版页,因此可以在每个单独的站点中使用相应的品牌进行正常工作。
一些例子:
虽然它在制作中可以正常使用,但它有很多原因:
因此,我想抛弃所有废话,转而使用预编译站点,使用Web部署项目将所有内容放在服务器上。这引发了如何处理共享组件的问题。我很确定在这种环境下我无法摆脱虚拟目录技巧,坦白说,我真的不想这样做。
如何创建.aspx / .ascx文件和相关图像/脚本/ CSS资源的子目录有点像类库?假设我将VacationCalendar目录中的所有内容放入其自己的项目/解决方案中,然后让每个Intranet站点导入该内容并使所有这些文件在/ VacationCalendar路径下可用。有没有什么方法可以做这样的事情而没有重大的麻烦?
我真的不想将所有这些网站合并到一个解决方案中,因为总是有可能需要限制源代码管理中的访问权限。
答案 0 :(得分:0)
是不是很明显,或者我的想法很糟糕。无论如何:
制作母版页,链接所有网站(预编译)并具有:
母版页可以拥有所有共享资源的目录,每个站点可以拥有不同的文件夹。没有混乱。您甚至可以要求登录某些目录,并设置权限
答案 1 :(得分:0)
免责声明 - 我没试过。
在自己的项目中将共享目录创建为子目录。将这些项目部署到禁用站点下的Web服务器,但从实际站点链接到该站点的实际子目录。
所以在IIS中你可以拥有
+ - DisabledWebsite
| |
| + --- PhoneProject
| |
| + --- PhoneDir (at c:/webs/PhoneProject/PhoneDir
|
+ - EnabledSite
|
+ --- RealProject (bound to http:something.com for example)
|
+-- PhoneDir (virtual linked to c:/webs/PhoneProject/PhoneDir
然后,您可以编译PhoneProject并将其与RealProject分开部署。您可能还必须为PhoneProject创建一个单独的命名空间,并将其编译的dll放入RealProject / bin目录。