abp 嵌入资源(视图cssjs)的访问

Posted 儿时精神

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了abp 嵌入资源(视图cssjs)的访问相关的知识,希望对你有一定的参考价值。

最近在做的基于abp作为框架的一个项目,将一些属于框架功能的页面写在了一个独立程序集中,然后在web项目中引用该程序集达到访问框架页面目的。

这样一来发布web之后,在发布目录中是看不到写在另一个程序集中的页面,这样有利于框架功能与业务功能的分离。在框架做了修改以后,只需要在业务项目中替换引用的框架dll文件即可,维护起来比较方便。


这种想法还是比较好的,但在实施时遇到一个情况:web发布以后,如果直接挂在IIS的网站上能够访问内嵌视图(完全正常),但如果挂载在网站下的应用程序下(虚拟网站)就不能访问内嵌视图了(测试了下 ,在此情况下能够访问内嵌的css和jis文件)。

这种不能访问嵌入视图(js、css可正常访问)

 

这种可以访问嵌入视图(js、css可正常访问)

 


 

猜测原因:因为挂在虚拟目录的网站会多出一个层级目录,影响到了控制器查找对应的内嵌视图。 以下给出截图:

解决办法:

1、重写视图解析。 源码下载

2、在控制器的action中返回的视图为完全限定名方式。格式:程序集名+视图目录。截图如下:


发布后的网站,可能会遇到嵌入资源无法问题。请参考文章:abp 将abp项目发布之后挂在IIS上无法访问嵌入资源的问题

以上是关于abp 嵌入资源(视图cssjs)的访问的主要内容,如果未能解决你的问题,请参考以下文章

abp 将abp项目发布之后挂在IIS上无法访问嵌入资源的问题

ABP官方文档翻译 6.5 内嵌资源文件

使用自定义 VirtualPathProvider 加载嵌入式资源部分视图

ABP开发手记9 - 展示层实现增删改查-视图模型

访问视图中的嵌套表单字段(嵌入表单集合)

Spring-Boot整合freemarker引入静态资源cssjs等(转)