如何在DNN模块中插入一个图片--在模块中引用资源文件

简介: DNN永远都是运行在网站的根目录 DNN的设计上最大的特点就是始终是使用一个网站根目录下的Default.aspx文件加载皮肤和模块从而实现整个网站的页面。这也就是说DNN这个Asp.net程序永远是运行在DNN网站的根目录的,所有的资源文件(如:JS文件,图片,CSS)的引用都要从DNN网站的根目录算起。

DNN永远都是运行在网站的根目录

DNN的设计上最大的特点就是始终是使用一个网站根目录下的Default.aspx文件加载皮肤和模块从而实现整个网站的页面。这也就是说DNN这个Asp.net程序永远是运行在DNN网站的根目录的,所有的资源文件(如:JS文件,图片,CSS)的引用都要从DNN网站的根目录算起。

 

这么说有点难以理解,举个例子吧:

假设你把DNN安装到了一个虚拟目录下面,比如DotNetNuke_2目录下,那么你输入http://localhost/DotNetNuke_2就可以访问到这个DNN网站了。

然后你新建了一个模块,放到了DNN网站的DesktopModules/MyModuleName目录下。现在你新建模块在IIS中位置应该是这样的:http://localhost/DotNetNuke_2/DesktopModules/MyModuleName

问题来了

现在你需要在View.ascx文件中放入一个图片,作为界面的一部分,这个图片的名字是”CompanyLogo.gif”,位置就在”MyModuleName”这个目录下,自然,我们可以放入一个img tag,如下:

< img  src =””  alt =”your  alt”  />

现在问题来了,这个src到底是多少呢?

是使用”./CompanyLogo.gif”?我们先来试试,代码如下:

< img  src =” ./CompanyLogo.gif” alt =”your  alt”  />

最后生成的html代码跟这一样:

< img  src =” ./CompanyLogo.gif” alt =”your  alt”  />

并且图片没有显示,仔细一想,对啊,DNN是一直在根目录运行,模块只是作为一个控件加载,DNN的根目录下自然没有CompanyLogo.gif这个文件。

这样不行就使用全名指定吧,这总没问题了吧。我们来试试:

< img  src =”DotNetNuke_2/DesktopModules/MyModuleName/ CompanyLogo.gif” alt =”your  alt”  />

运行后,图片显示了,这样可以!

不过等等,如果别人用这个模块,虚拟目录可能就不是这个名字了,这个怎么处理?

ModulePath

这样的话,目录的路径就应该动态生成了,DNN已经为我们考虑了这个问题,在PortalModuleBase基类里,有一个ModulePath属性,使用这个属性就可以动态生成资源对应的路径了。

最后的代码如下:

< img  src =”<%=  ModulePath % >  CompanyLogo.gif” alt = “your alt” />

就可以了。

在这里ModulePath 的值为 "/DotNetNuke_2/DesktopModules/ MyModuleName /"

ResolveUrl

还有一个函数可以了解一下,就是在DotNetNuke.Common.Global类中的ResoveUrl函数

Public   Function  ResolveUrl( ByVal  url  As   String As   String

如果传入的URL以”~”开头,就会使用ApplicationPath代替”~”。

就是说我们可以用”~”来指代DNN的网站根目录,这样对于任何资源,我们只要使用”~”来开头,从根目录开始制定,就都可以引用到。

在这个例子里,可以这么写:

Page.ResolveUrl(“ ~/ DesktopModules /  MyModuleName  / CompanyLogo.gif”)

这里

ApplicationPath的值为"/DotNetNuke_2"

最后

希望这些小技巧能帮你解决一些问题!

相关文章
|
机器学习/深度学习 算法 PyTorch
OpenCV-图像着色(采用DNN模块导入深度学习模型)
OpenCV-图像着色(采用DNN模块导入深度学习模型)
176 0
来自OpenCv的DNN模块助力图像分类任务
来自OpenCv的DNN模块助力图像分类任务
183 0
来自OpenCv的DNN模块助力图像分类任务
|
机器学习/深度学习 内存技术
DNN免费模块集锦
注:本贴还在更新中。 Text/HTML 整站内容替换模块 DNN Text/HTML Replacement Tool  站点计数器模块 Free Visitor Counter CounterXP  Google Analytics 模块 iFinity Google Analyt...
753 0
|
机器学习/深度学习
DNN永日新闻模块(YongRi)免费1.00.09版本下载
DNN上实现新闻发布国内模块很少,主要是使用永日新闻模块实现。最近不少人在寻找之前免费的1.00.09版本,为方便大家学习,我把这个模块传上来了。 下载链接:永日新闻模块1.00.09免费版本下载 此版本不支持图片新闻模板。
750 0
|
机器学习/深度学习
DNN中如何一次性插入多个模块
需求 有时候,我们要用几个模块才能实现某一组功能,比如Blog模块,我们需要一个模块用列表显示Blog条目,需要一个模块显示Blog内容,需要一个模块显示历史Blog发帖记录,需要一个模块显示搜索,所有这些模块要在同一页面上同时显示,所以也不能用控件(Control)实现,并且我们想要这些模块...
714 0
|
机器学习/深度学习 前端开发 .NET
如何在DNN模块中插入一个图片--在模块中引用资源文件
DNN永远都是运行在网站的根目录 DNN的设计上最大的特点就是始终是使用一个网站根目录下的Default.aspx文件加载皮肤和模块从而实现整个网站的页面。这也就是说DNN这个Asp.net程序永远是运行在DNN网站的根目录的,所有的资源文件(如:JS文件,图片,CSS)的引用都要从DNN网站的根目录算起。
822 0
|
机器学习/深度学习 数据格式 XML
模块DNN文件的版本记录和resource文件
做个笔记,就不详细讲了:  对模块的DNN XML 文件,有两个节点,一个是 ^[0-9]{1}[4-9]{1}.[0-9]{1}[6-9]{1}.[0-9]{1}[0-9]{1}$   这里可以用正则表达式指定模块兼容的版本,具体请参考:Minimum DotNetNuke Core Version Support 一个是: DNN_Announcements.
571 0
|
机器学习/深度学习
我下载了一个DNN模块的源码,如何加入我的DNN开发环境并编辑它?
下载源代码包 首先你需要得到模块的源代码包,对于DNN官方的模块,都会提供一个源代码包。对于非官方的模块,如果是开源的,也会提供一个源代码包。 比如Announcement模块:   对于代码包的区别,请参考这个: DNN Install包,DNN Source包和DNN StarterKit包之间有什么区别? 安装源码包: 安装源代码包和安装其它模块没有区别,正常安装就可以了,但要注意的一点是:官方的源代码包都会自动安装所有需要的源文件,但如果是第三方的源代码包,有时不能完全安装所有文件,这时你把源代码包解压缩后直接覆盖DesktopModules下的目录即可。
640 0
|
机器学习/深度学习
永日模块01.00.09不兼容DNN 4.3.7
近日发现永日01.00.09版本不兼容DNN 4.3.7, 表现是安装上去之后 show模块在管理员权限下正常现示但在普通权限下不能显示 show模块的“设置(Settings)”菜单不能显示永日自己的设置部份,这样也就无法给show模块指定显示"manager"模块里面那一部份的内容了 01.00.09在DNN 4.3.4下工作正常。
695 0
|
机器学习/深度学习
DNN4.3.3的版本开发的模块.没登陆DNN的情况下,按钮的事件有时候执行,有时候怎么点都不执行
Q:想问一下,我用DNN4.3.3的版本开发的模块. 为什么我在没登陆DNN的情况下,按钮的事件有时候执行,有时候怎么点都不执行啊. A:清空一下Cache就会正常
545 0

热门文章

最新文章

相关实验场景

更多