最近在做的基于abp作为框架的一个项目,将一些属于框架功能的页面写在了一个独立程序集中,然后在web项目中引用该程序集达到访问框架页面目的。
这样一来发布web之后,在发布目录中是看不到写在另一个程序集中的页面,这样有利于框架功能与业务功能的分离。在框架做了修改以后,只需要在业务项目中替换引用的框架dll文件即可,维护起来比较方便。
这种想法还是比较好的,但在实施时遇到一个情况:web发布以后,如果直接挂在IIS的网站上能够访问内嵌视图(完全正常),但如果挂载在网站下的应用程序下(虚拟网站)就不能访问内嵌视图了(测试了下 ,在此情况下能够访问内嵌的css和jis文件)。
这种不能访问嵌入视图(js、css可正常访问)
这种可以访问嵌入视图(js、css可正常访问)
猜测原因:因为挂在虚拟目录的网站会多出一个层级目录,影响到了控制器查找对应的内嵌视图。 以下给出截图:
解决办法:在控制器的action中返回的视图为完全限定名方式。格式:程序集名+视图目录。截图如下:
发布后的网站,可能会遇到嵌入资源无法问题。请参考文章:abp 将abp项目发布之后挂在IIS上无法访问嵌入资源的问题
时间: 2024-10-13 15:15:12