游客发表

web目录结构

发帖时间:2026-10-17 04:48:30

打开任何一个网站根目录,录结你看到的录结第一个文件大概率是 index.html 或 index.php。这不是录结巧合,是录结服务器默认行为——它在找不到具体文件名时,会自动去找这个“入口”。录结web 目录结构说到底就干一件事:告诉服务器和浏览器,录结什么东西放在哪里,录结以及谁先被看见。录结

我最早接触网站的录结时候,把所有文件一股脑扔在根目录。录结CSS、录结JS、录结图片、录结十几个 HTML 页面,录结全挤在一起。录结改一个按钮颜色,得在三十多个文件里翻。后来才明白,目录结构不是给电脑看的,是给人看的。电脑不在乎你把 style.css 放在 /assets/css/ 还是 /a/b/c/,它只认路径。但人不行。

常见的做法是按文件类型分。根目录下建几个文件夹:css、js、images、fonts。这种分法直观,新手友好。缺点是页面一多就乱——你没法一眼看出 about.html 和 contact.html 属于同一组功能。于是有人改成按功能模块分:/user/、/admin/、/blog/、/shop/。每个模块内部再放自己的样式和脚本。这种结构在项目变大之后优势明显,删除一个功能模块直接删整个文件夹,不用担心漏掉什么。

静态资源通常单独拎出来。图片放 /static/img/,字体放 /static/fonts/,第三方库放 /vendor/ 或 /lib/。这么做的实际好处是配置缓存规则方便——服务器可以给 /static/ 下的所有文件设置一年过期时间,HTML 文件则设成不缓存。要是混在一起,这活儿就没法干了。

有个细节容易被忽略:目录层级不要太深。我见过一个项目,路径长到 /application/modules/frontend/controllers/user/profile/edit/。每次写相对路径都是一场灾难,../../../../ 数到眼花。一般建议控制在三到四层以内。超出这个范围,要么是项目本身该拆了,要么是命名太啰嗦。

命名规范也值得说一句。用短横线还是下划线?全小写还是驼峰?这些没有绝对对错,但团队里必须统一。我见过有人用 MyPage.html,有人用 my_page.html,还有人用 mypage.HTML。在 Linux 服务器上,这些都是不同的文件。Windows 开发环境不区分大小写,部署到 Linux 上就 404,这种事发生过太多次了。

再说入口文件。index.html 放在根目录是惯例,但不是铁律。有些框架把入口藏在 /public/ 下面,根目录只放配置和源码。这样做更安全——Web 服务器指向 /public/,源码目录根本访问不到。Laravel、Symfony 都是这个思路。如果你用的是共享主机,没法改网站根目录,那就只能把入口放外面,但记得用 .htaccess 或 nginx 配置挡住敏感文件。

最后提一个我自己的习惯:在根目录放一个 README.md,简单写清楚每个文件夹是干什么的。三个月后回来改代码,你会感谢自己。目录结构这件事,没有标准答案,但有明显的坏答案。让人找得到东西的结构,就是好结构。

    热门排行

    友情链接