您现在的位置是:首页 > cms教程 > Discuz教程Discuz教程
Discuz!NT关于配置文件路径相关的处理方法
之柔2025-07-19Discuz教程已有人查阅
导读本篇主要涉及Discuz!NT中的关于配置文件路径相关的处理方法.Discuz!NT2.0的安装解压,现在 D:\Discuz\ 文件夹中有下图内容.这便是Discuz!NT2.0的源代码了.
本篇主要涉及Discuz!NT中的关于配置文件路径相关的处理方法.
Discuz!NT2.0的安装
1)先从官网
其中Discuz.Web便是我们的论坛位置.
Discuz.Web中包含两个文件DNT.config,Web.config和一个config文件夹,里面存放着许多配置文件
如:general.config,urls.config.....等等
2)我们将DNT.config和Web.config 剪贴到系统主目录下.默认在C:\Inetpub\ root\下
3)为D:\Discuz\Discuz.Web\ 建立虚拟目录,虚拟目录名为 bbs (当然你可以设为其它名称)
4)打开DNT.config
接下来我们开始讨论,Discuz!NT2.0对于配置文件的路径处理相关问题
问题1? 我们在代码中如何获取DNT.config配置文件呢? 很简单 "/DNT.config" 看下面解释
我们可以在任何地方新建一个html文件
我们可以在任何地方新建一个aspx文件输入代码
很明显,主目录让我们的相对路径变的方便起来. "/DNT.config" 中的"/"这个符号便是从主目录开始
问题2? Discuz!NT2.0将其他所有配置文件放在Discuz.Web的config文件夹中那我们在代码中如何获取 D:\Discuz\Discuz.Web\config\general.config配置文件呢?
很简单"/bbs/config/general.config"看下面解释
我们可以在任何地方新建一个html文件
上面的bbs就是之前设定的虚拟目录名称我们可以在任何地方新建一个aspx文件
输入代码 Response.Write(HttpContext.Current.Server.MapPath("/bbs/config/general.config"))
将输出
在代码中我们只需使用 "ForumPath结点值" + "config/general.config" 便是"/bbs/config/general.config"了
问题3? 可不可以不将DNT.config和Web.config放在主目录,直接放在原位.即Discuz.Web\ 中,这样移植性将大大提高,我 们只需要建虚拟目录便可使用了.
这就要看大家是否还记得 "~/" 站点根目录
我们新建一个aspx文件,放入D:\Discuz\Discuz.Web\ 中,然后也将DNT.config放入其中 即还回原位在aspx中输入代码 Response.Write(HttpContext.Current.Server.MapPath("~/DNT.config"))
将输出 D:\Discuz\Discuz.Web\DNT.config
"~"符号的作用相当明显,取得当前站点的根目录,我们在Image控件中也经常看到它的身影.
例如:
这样我们就可以让DNT.config中的<ForumPath>/bbs/</ForumPath>滚蛋了。
现在让我们以 Discuz!NT 2.5 中的访问代码来结尾. 2.5虽然还没有开源,但我们可以使用反射查看源代码.
Discuz!NT2.0的安装
1)先从官网
http://.discuznt.com/opensource.html 下载源代码
解压,现在 D:\Discuz\ 文件夹中有下图内容.这便是Discuz!NT2.0的源代码了.其中Discuz.Web便是我们的论坛位置.
Discuz.Web中包含两个文件DNT.config,Web.config和一个config文件夹,里面存放着许多配置文件
如:general.config,urls.config.....等等
2)我们将DNT.config和Web.config 剪贴到系统主目录下.默认在C:\Inetpub\ root\下
3)为D:\Discuz\Discuz.Web\ 建立虚拟目录,虚拟目录名为 bbs (当然你可以设为其它名称)
4)打开DNT.config
<?xml version="1.0"?>
<BaseConfigInfo xmlns:xsd="http:// .w3.org/2001/XMLSchema"
xmlns:xsi="http:// .w3.org/2001/XMLSchema-instance">
<DbConnectString>Data Source=(local);User ID=sqlname;Password=sqlpassword;
Initial Catalog=databasename;Pooling=true</DbConnectString>
<TablePrefix>dnt_</TablePrefix>
<ForumPath>/</ForumPath>
<FounderUid>0</FounderUid>
<DbType>SqlServer</DbType>
</BaseConfigInfo>
将<ForumPath>/</ForumPath> 修改为<ForumPath>/bbs/</ForumPath>接下来我们开始讨论,Discuz!NT2.0对于配置文件的路径处理相关问题
问题1? 我们在代码中如何获取DNT.config配置文件呢? 很简单 "/DNT.config" 看下面解释
我们可以在任何地方新建一个html文件
<html>
<head></head>
<body>
<a href=”/DNT.config”>配置文件</a>
</body>
</html>
点击配置文件的超链接.在地址栏中会出现 http://localhost/DNT.config当然,会出现错误,提示无法提供该类型页面.可以变通一下将DNT.config修改为DNT.xml我们可以在任何地方新建一个aspx文件输入代码
Response.Write(HttpContext.Current.Server.MapPath("/DNT.config"))
将输出 C:\Inetpub\ root\DNT.config很明显,主目录让我们的相对路径变的方便起来. "/DNT.config" 中的"/"这个符号便是从主目录开始
问题2? Discuz!NT2.0将其他所有配置文件放在Discuz.Web的config文件夹中那我们在代码中如何获取 D:\Discuz\Discuz.Web\config\general.config配置文件呢?
很简单"/bbs/config/general.config"看下面解释
我们可以在任何地方新建一个html文件
<html>
<head></head>
<body>
<a href=”/bbs/config/general.config”>配置文件</a>
</body>
</html>
点击配置文件的超链接 地址栏中会出现 http://localhost/bbs/config/general.config上面的bbs就是之前设定的虚拟目录名称我们可以在任何地方新建一个aspx文件
输入代码 Response.Write(HttpContext.Current.Server.MapPath("/bbs/config/general.config"))
将输出
D:\Discuz\Discuz.Web\config\general.config
很明显,虚拟目录名可以根据用户随意设定,我们不可能根据虚拟目录名,每次去修改代码中的路径,这也就是为什么在 DNT.config中有个 <ForumPath>/bbs/</ForumPath>了在代码中我们只需使用 "ForumPath结点值" + "config/general.config" 便是"/bbs/config/general.config"了
问题3? 可不可以不将DNT.config和Web.config放在主目录,直接放在原位.即Discuz.Web\ 中,这样移植性将大大提高,我 们只需要建虚拟目录便可使用了.
这就要看大家是否还记得 "~/" 站点根目录
我们新建一个aspx文件,放入D:\Discuz\Discuz.Web\ 中,然后也将DNT.config放入其中 即还回原位在aspx中输入代码 Response.Write(HttpContext.Current.Server.MapPath("~/DNT.config"))
将输出 D:\Discuz\Discuz.Web\DNT.config
"~"符号的作用相当明显,取得当前站点的根目录,我们在Image控件中也经常看到它的身影.
例如:
<asp:Image ID="Image1" runat="server" ImageUrl="~/Images/1.jpg" />
那么访问general.config,我们只需使用 "~/config/general.config"了.这样我们就可以让DNT.config中的<ForumPath>/bbs/</ForumPath>滚蛋了。
现在让我们以 Discuz!NT 2.5 中的访问代码来结尾. 2.5虽然还没有开源,但我们可以使用反射查看源代码.
public static string ConfigFilePath
{
get
{
if (filename == null)
{
HttpContext current = HttpContext.Current;
if (current != null)
{
filename = current.Server.MapPath("/DNT.config");
if (!File.Exists(filename))
{
filename = current.Server.MapPath("~/DNT.config");
}
}
else
{
filename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "DNT.config");
}
if (!File.Exists(filename))
{
throw new DNTException("发生错误: 网站根目录下没有正确的DNT.config文件");
}
}
return filename;
}
}
看来2.5做的不错,兼容了上面说的二者.代码中先以 "/DNT.config"来访问,如果不在主目录中.再以"~/DNT.config"来访问,如果不在根目录中,则抛出异常.好了,就到这里,休息,休息。
本文标签:
很赞哦! ()
相关教程
图文教程
Discuz NT相册查看插件开发实例
现在把他整合在Discuz NT 的相册程序中.下面介绍一下实现方法. 貌似太简单了点.然后在discuz NT网站的根目录下新建一个文件夹来放highslide库, 我这里是命名为static
Discuz模板更新后样式错乱的解决方法
1. 清空浏览器缓存或使用无痕模式浏览网站;2. 检查并确保css文件路径正确;3. 使用ftp工具确认所有模板文件已上传并覆盖原文件;4. 禁用所有插件,然后逐一启用并测试,找出问题插件。
discuz网站结构和工作原理
1、首先,介绍网站最主要的三个文件夹:root\source\、root\template\、root\static\,分别是代码文件夹、模版文件夹、静态文件夹(js、css、image等)。
怎么安装和配置discuz
本篇文章给大家介绍一下discuz安装配置。有的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。discuz安装配置准备 LAMP 环境LAMP 是 Linux、Apache、MySQL 和 PHP 的缩写
相关源码
-
WordPress主题模板主题巴巴/博客X主题源码免费下载博客X主题专注于内容创作领域,为博客、资讯类网站提供专业的内容展示解决方案。该模板采用精心设计的布局结构,能够有效提升内容的可读性和用户停留时间。查看源码 -
(自适应)调节阀门气动球阀控制阀网站模板源码下载为调节阀门、气动球阀等工业设备企业打造的响应式网站模板,基于PbootCMS系统开发。突出产品参数展示与技术文档管理功能,通过专业化的布局设计有效呈现工业设备特性,适配各类终端访问需求。查看源码 -
(自适应)变压器电子元器件电器配件pbootcms网站模板源码为电子元器件企业打造的响应式网站模板,基于PbootCMS内核开发,助力企业快速构建专业级线上展示平台。支持页面独立设置标题、关键词和描述,内置SEO友好结构。PHP程序确保运行安全稳定,有助于提升搜索引擎收录效果。查看源码 -
(PC+WAP)院校学院职业学校机构协会网站开源源码下载本模板基于PbootCMS系统开发,为高等院校、职业学校等教育机构设计,特别适合展示学校概况、院系设置、招生信息等内容。采用双端适配技术,确保在PC和移动设备上都能获得良好的浏览体验。查看源码 -
响应式茶叶茶道pbootcms网站模板源码(自适应手机端)棕色复古茶具主题的响应式网站模板,为茶叶茶道企业设计,同时支持古玩字画、艺术文化等行业的快速适配,通过替换文字图片即可转型为其他行业官网,大幅降低开发成本。查看源码 -
PbootCMS(自适应手机端)智能电话AI机器人网站模板产品概述基于PbootCMS内核开发的智能电话AI机器人网站模板,为语音交互服务场景设计,采用HTML5+CSS3响应式布局技术,实现PC端与移动端数据实时同步展示。模板适用于智能电话查看源码
| 分享笔记 (共有 篇笔记) |