凌峰创科服务平台

phpcms网站路径如何正确配置与优化?

我们将从几个层面来讲解 Phpcms 的路径:

phpcms网站路径如何正确配置与优化?-图1
(图片来源网络,侵删)
  1. 核心目录结构:认识 Phpcms 文件夹都代表什么。
  2. 访问路径:用户在浏览器中输入的网址。
  3. 程序中的路径:PHP 代码中如何引用文件、目录和生成 URL。
  4. 常见问题与解决方案:关于路径的常见错误和解决方法。

Phpcms 核心目录结构

假设你的 Phpcms 安装在网站的根目录 下,其目录结构通常如下:

/your_website/
├── api/                  # API 接口目录
├── caches/               # 系统缓存目录(需可写权限)
├── caches/               # 模板缓存目录(需可写权限)
├── configs/              # 配置文件目录
│   ├── database.php      # 数据库配置文件
│   └── ...
├── css/                  # CSS 样式文件目录
├── favicon.ico           # 网站图标
├── flash/                # Flash 文件目录
├── fonts/                # 字体文件目录
├-- html/                 # 生成静态文件的目录(需可写权限)
├-- index.php             # 网站入口文件(非常重要!)
├-- install/              # 安装程序目录(安装完成后建议删除)
├-- js/                   # JavaScript 文件目录
├-- phpcms/               # Phpcms 核心程序目录
│   ├── admin/            # 后台管理程序目录
│   ├── libs/             # 核心类库和函数库
│   │   ├── classes/      # 类库文件
│   │   ├── functions/    # 函数库文件
│   │   └── ...
│   ├── modules/          # 模块目录(如内容模块、会员模块等)
│   ├── statics/          # 静态资源目录(与根目录下的 statics 不同)
│   └── ...
├-- statics/              # 网站(前台)静态资源目录(CSS, JS, images等)
│   ├── css/
│   ├── images/
│   └── js/
├-- uploadfile/           # 上传文件目录(图片、附件等,需可写权限)
├-- uploadfile/           # 附件上传目录
└── ...                   # 其他自定义目录或文件

关键目录说明:

  • /phpcms/: 这是 Phpcms 的心脏,包含了所有核心功能模块、类库和函数。
  • /index.php: 前台程序的统一入口文件,所有前台页面的访问都会先经过这个文件。
  • /statics/: 存放网站前台使用的 CSS、JS、图片等静态资源。
  • /uploadfile/: 存储用户通过后台或表单上传的所有文件,如文章图片、附件等。
  • /html/: 用于存放由动态页面生成的静态 HTML 文件,以减轻服务器压力。
  • /caches/: 存放系统运行时产生的缓存文件,以提高性能。

访问路径

这是指用户在浏览器地址栏中输入的 URL,Phpcms 的访问路径由其 URL 重写规则决定。

动态路径(默认)

如果未开启 URL 静态化,访问路径会包含 index.php 和模块参数。

phpcms网站路径如何正确配置与优化?-图2
(图片来源网络,侵删)
  • 首页: http://www.yourdomain.com/
  • 列表页: http://www.yourdomain.com/index.php?m=content&c=index&a=lists&catid=1
    • m: 模块 (module),这里是 content 内容模块。
    • c: 控制器 (controller),这里是 index
    • a: 方法 (action),这里是 lists 列表方法。
    • catid: 分类 ID。
  • 内容页: http://www.yourdomain.com/index.php?m=content&c=index&a=show&catid=1&id=100

静态路径(推荐)

通过后台开启 URL 静态化后,路径会变得简洁、美观,也有利于 SEO,这通常需要服务器配置伪静态规则(如 Apache 的 .htaccess 或 Nginx 的 rewrite 规则)。

  • 首页: http://www.yourdomain.com/
  • 列表页: http://www.yourdomain.com/html/list/1/
  • 内容页: http://www.yourdomain.com/html/show/1-100.html

这里的 1 是分类 ID,100 是内容 ID,这些路径格式是在 Phpcms 后台的“URL 静态化”设置中配置的。


程序中的路径

在 Phpcms 的 PHP 模板文件(.php)或控制器中,经常需要手动处理路径,以下是几种常用方法:

a. 获取网站根目录 URL

在模板中,可以使用 get_site_url() 函数来获取网站在 configs/system.php 中配置的域名。

phpcms网站路径如何正确配置与优化?-图3
(图片来源网络,侵删)
// 在模板文件中
$site_url = get_site_url(); // 输出类似: http://www.yourdomain.com

b. 引用静态资源(CSS, JS, Images)

最佳实践:在模板中引用静态资源时,永远不要使用硬编码的绝对路径(如 /statics/css/style.css),因为这样无法在子目录安装时正常工作。

推荐方法 1:使用 {CSS_PATH}, {JS_PATH},{IMG_PATH}`

Phpcms 模板引擎内置了这些变量,它们会自动指向 /statics/ 目录。

<!-- 在模板文件 .html 中 -->
<link href="{CSS_PATH}style.css" rel="stylesheet" type="text/css">
<script src="{JS_PATH}jquery.min.js"></script>
<img src="{IMG_PATH}logo.png" alt="Logo">

这是最推荐、最标准的方式。

推荐方法 2:使用 phpcms::L() 函数

如果静态资源在 /phpcms/statics/ 目录下,可以使用 L() 函数。

<link href="{L('style.css')}" rel="stylesheet">

L() 函数会自动查找并返回 /phpcms/statics/ 下的文件路径。

c. 生成链接

在模板中生成模块、分类或内容的链接,应使用系统提供的函数,而不是手动拼接 URL。

  • 分类链接: CATEGORY_URL
  • 内容链接: URL
  • 首页链接: SITE_URL

示例(在内容列表模板 list.php 中):

<?php
// 循环输出分类
if (is_array($cats)) {
    foreach($cats as $cat) {
        // 正确生成分类链接
        $category_url = $cat['url']; // 系统自动生成的URL
        // 或者使用函数
        // $category_url = go($cat['catid']);
        echo "<a href='{$category_url}'>{$cat['catname']}</a>";
    }
}
// 循环输出文章列表
if (is_array($infos)) {
    foreach($infos as $info) {
        // 正确生成文章链接
        $article_url = $info['url']; // 系统自动生成的URL
        // 或者使用函数
        // $article_url = go($info['catid'], $info['id']);
        echo "<a href='{$article_url}'>{$info['title']}</a>";
    }
}
?>

关键点$cat['url']$info['url'] 是 Phpcms 在解析模板时自动生成的,它会根据后台的 URL 设置(动态或静态)返回正确的链接,使用 go() 函数也可以达到同样效果。

d. 获取服务器物理路径

在 PHP 代码中,如果需要操作服务器上的文件(如读写缓存、处理上传文件),需要使用物理路径。

  • __ROOTPATH__: Phpcms 定义的常量,指向网站根目录的物理路径。
  • PHPCMS_PATH: Phpcms 核心目录的物理路径,通常指向 /phpcms/

示例:

// 在控制器或模型中
$cache_file = __ROOTPATH__ . 'caches/my_cache.txt';
// 或者
$upload_dir = PHPCMS_PATH . 'uploadfile/';

常见问题与解决方案

问题 1:图片、CSS 样式加载不出来

  • 原因:通常是路径错误,最常见的是在模板中使用了硬编码的绝对路径(如 /statics/...),当网站安装在子目录(如 /cms/
分享:
扫描分享到社交APP
上一篇
下一篇