Builder Site institucional

Polar Sponsor
爱发电 赞助
.NET 9.0

使用 React (Vite + TypeScript + Tailwind CSS 4) 根据客户提供的素材(标志、图片、演示文稿等)创建专业机构网站

机构网站建设者

功能概述

机构网站建设者是一项面向实际任务的技能,主要用于技能 e specializada em criar sites institucionais de alta 是一项面向实际任务的技能,主要用于O 工作流程 Projetado para exir o máximo dos m.;它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
  • 实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
  • 若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

使用与执行

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

结果检查与注意事项

该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。

Institutional Site Builder

一项专注于根据客户提供的参考资料,构建高质量机构类网站的专业技能。该工作流旨在最大限度地利用客户交付的素材(Logo、视觉识别系统、演示文稿、PDF 等),将其转化为一个专业的 React 网站,具备交互动画、响应式布局与优化的性能表现。

技术栈

本项目始终使用以下技术:

  • Vite(v6+)作为打包工具(bundler)
  • React 19 + TypeScript
  • Tailwind CSS 4,通过 @tailwindcss/vite 集成
  • Framer Motion 实现动画效果
  • Lucide React 提供图标支持

可选依赖(按需安装):

  • three + @types/three —— 用于实现动态 3D 背景(如 DottedSurface、着色器背景等)
  • react-use-measure —— 支持 InfiniteSlider(例如 Logo Cloud、跑马灯效果)

六阶段工作流

第一阶段:素材探索与清点

在编写任何代码之前,请全面审视用户提供的所有素材。此阶段至关重要,因为素材将决定网站的整体调性、配色方案、文案内容与图像资源。

请将素材按以下逻辑类别进行心智归类:

类别 需查找的内容 用途说明
视觉识别系统(Identidade Visual) 色值(十六进制)、字体规范、品牌指南(guidelines) 用于定义 CSS 中的 @theme 变量,包括主色调、强调色(accent)、渐变等
Logo 明/暗版本、横/竖版、SVG/PNG 格式 导航栏(Navbar)使用横版浅色;页脚(Footer)使用横版浅色;Favicon 使用深色图标
产品图片(Imagens de Produto) 截图(screenshots)、设计稿(mockups)、业务场景实拍图 用于功能卡片(Feature cards)、首屏背景(hero background)、时间轴(timeline)、滚动媒体(scroll media)等模块
演示文稿(Apresentações) PPT、含产品信息的 PDF 文件 提取其中的文案、标题(headlines)、要点(bullet points)及章节结构
UI 组件(Componentes UI) .txt 文件,内含参考用的 React 代码片段 适配至当前项目(移除 shadcn、Next.js 等无关依赖)
联系信息(Dados de Contato) 邮箱、电话、社交媒体账号、物理地址 用于页脚(Footer)、联系表单(Contato)以及悬浮 WhatsApp 按钮
客户 Logo(Logos de Clientes) 合作伙伴或客户企业的 Logo 用于“社会证明”(social proof)模块,并以 InfiniteSlider 展示

素材探索检查清单:

  1. 对用户提供的整个文件夹执行递归 ls -la
  2. 使用 Read 工具读取所有图像(Logo、视觉识别素材、关键幻灯片截图等)
  3. 解析 PDF / PPT 文件,提取文本内容
  4. 精准识别并记录主配色方案(hex codes)
  5. 映射每张图像适用的页面位置(即哪张图用于哪个模块)
  6. 记录联系信息、产品名称、宣传语(taglines)等关键文本

第二阶段:网站规划

完成素材清点后,通过 AskUserQuestion 向用户确认以下问题:

  1. 语言 —— PT-BR、EN,还是双语?
  2. 页面结构 —— 完整版(Hero、Problema、Solução、Features、Benefícios、Clientes、CTA、Contato、Footer)还是精简版?
  3. 视觉风格 —— 暗黑高端(Dark premium)、明亮简洁(Light/clean),还是混合模式(Híbrido)?
  4. 联系方式呈现方式 —— 表单 + WhatsApp 浮动按钮、仅展示链接,还是完整表单?

大多数 B2B 类机构网站遵循如下标准页面顺序(可根据实际需求调整):

1. Navbar(固定定位,滚动时启用模糊效果)
2. Hero(价值主张 + CTA)
3. Contexto/Problema(产品存在的原因)
4. Solução(产品具体功能)
5. Pipeline/Processo(运作流程,分步说明)
6. Funcionalidades(带图的功能卡片)
7. Detalhes técnicos(IoT、集成能力等)
8. Benefícios(按类别划分的卡片组)
9. Canais de Entrega(多渠道集成能力)
10. Clientes(Logo Cloud + 社会证明)← CTA 前置
11. CTA Final(冲击力文案 + 按钮)
12. Contato(表单 + 联系信息)
13. Footer(链接、Logo、版权信息)
14. WhatsApp Flutuante(悬浮 WhatsApp 按钮)

第三阶段:项目初始化

npm create vite@latest  -- --template react-ts
cd 
npm install
npm install -D tailwindcss @tailwindcss/vite --legacy-peer-deps
npm install framer-motion lucide-react

配置 vite.config.ts:

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import tailwindcss from '@tailwindcss/vite'

export default defineConfig({
  plugins: [react(), tailwindcss()],
  build: {
    rollupOptions: {
      output: {
        manualChunks: {
          // 根据重型库的实际使用情况添加
          'framer-motion': ['framer-motion'],
        },
      },
    },
  },
})

在 src/index.css 中配置客户配色方案:

@import "tailwindcss";

@theme {
  /* 从客户视觉识别系统中提取的色值 */
  --color-primary-900: #XXXXXX;
  --color-primary-800: #XXXXXX;
  /* ... 全量映射客户配色方案 ... */
  --color-accent: #XXXXXX;
  --font-sans: 'Inter', system-ui, sans-serif;
}

配置 index.html:

  • 设置正确的 lang 属性(如 pt-BR 或 en)
  • 设置包含产品关键词的
  • 通过 defer 加载 Google Fonts(避免阻塞渲染):
    
    
    

复制静态资源(assets):

  • 创建 public/images/ 目录,并复制全部产品相关图像
  • 如有客户 Logo,创建 public/images/clientes/ 目录
  • 复制 Logo 文件(优先选用横版用于 Navbar)

第四阶段:网站开发

对于总行数约 ≤800 行的中小型网站,全部实现在单一 App.tsx 文件中;更大规模的网站,则应在 src/components/ 下拆分为独立组件。

所有图像必须遵守以下强制规范:

描述性文字

必须包含的实用工具组件:

  • useInView() —— 基于 Intersection Observer 实现进入视口时的动画触发
  • Section —— 封装容器,支持滚动时自动触发动画(opacity + translateY)
  • TextCycle —— 支持滑动向上(slideUp)切换关键词的文本轮播组件

每个页面模块开发前,请查阅 references/components.md,其中提供了针对本技术栈(无 shadcn、Next.js 或 cn() 依赖)定制的完整模板。

第五阶段:性能优化(强制执行)

此阶段必须在向用户交付前完成。

5.1 图像优化 —— 转换为 WebP 格式:

from PIL import Image
import glob, os
for f in glob.glob("public/images/*.png") + glob.glob("public/images/*.jpg"):
    if os.path.getsize(f) > 100_000:
        img = Image.open(f)
        if img.width > 1200:
            ratio = 1200 / img.width
            img = img.resize((1200, int(img.height * ratio)), Image.LANCZOS)
        img.save(f.rsplit('.', 1)[0] + '.webp', 'WEBP', quality=80)

更新代码中所有图像引用路径为 .webp 后缀。

5.2 字体加载 —— 消除渲染阻塞: 在 index.html 中采用 media="print" onload="this.media='all'" 模式。

5.3 JavaScript —— 代码分割(Code splitting):

  • 重型库(如 Three.js)采用 lazy import + Suspense 方式加载
  • 在 vite.config.ts 中配置 manualChunks
  • 主 JS bundle 大小应控制在 300KB 以内

5.4 最低可访问性(Acessibilidade mínima)要求:

  • 主容器添加 role="main"
  • 所有 标签均需提供 alt 属性
  • 所有 标签均需显式声明 width 和 height
  • 标题层级(heading)须严格按顺序使用(h1 → h2 → h3)
  • 文本与背景之间需满足足够的对比度

5.5 基础 SEO 支持:

  • </code> 标签需具描述性</li> <li><code><meta name="description"></code> 应体现核心产品信息</li> <li><code><html></code> 标签中需设置正确 <code>lang</code> 属性</li> </ul> <h3>第六阶段:交付</h3> <ol> <li>执行 <code>npm run build</code>,确保构建无报错</li> <li>将完整项目复制到用户指定目录</li> <li>提供本地路径链接:<code>computer:///path/to/project</code></li> <li>指导用户运行:<code>cd nome-site && npm install && npm run dev</code></li> </ol> <h2>参考资料</h2> <ul> <li><code>references/components.md</code> —— 全量 23 个组件的分类目录表、Next.js→Vite 迁移速查表(cheat sheet),以及内联可用的完整模板</li> <li><code>references/components/</code> —— 23 个原始 .txt 文件,每个文件均含完整 TSX 代码、Demo 示例及所依赖项</li> <li><code>references/patterns.md</code> —— CSS 设计模式、动画实现、玻璃拟态(glass morphism)、渐变应用、图像优化策略等</li> </ul> <h3>可用组件列表(共 31 个 —— 23 个基础组件 + 8 个来自 21st.dev 的扩展组件)</h3> <p><strong>首屏模块(Heroes):</strong> Glassmorphism Trust Hero、3D Hero(Spline)、Scroll Expand Media <strong>背景模块(Backgrounds):</strong> Animated Shader(GLSL Aurora)、Flow Field(Canvas 2D)、Dotted Surface(Three.js) <strong>导航模块(Navigation):</strong> Tubelight Navbar、Limelight Nav(支持暗色模式) <strong>卡片模块(Cards):</strong> Glowing Effect Border、Bauhaus Card、Bento Grid <strong>内容模块(Content):</strong> Timeline(基于滚动触发)、Vertical Tabs、DB/API Diagram、Global Map、Logo Cloud(InfiniteSlider) <strong>动画模块(Animations):</strong> Text Cycle、Loading Skeleton、Container Scroll 3D、Notification Alert <strong>工具模块(Utility):</strong> Page 404、Footer、Password Confirmation</p> <p><strong>21st.dev 扩展组件:</strong> Starfall Portfolio Landing、Parallax Feature Section、Metaball Hero、Rotating Prompts、Collapsible Header、Image Card、Spotlight、Accordion</p> <p>使用任一组件前,请先阅读 <code>references/components.md</code> 获取组件目录索引,再查阅对应组件的 <code>.txt</code> 文件(位于 <code>references/components/</code> 目录下为基础组件;<code>references/components/21st-dev/</code> 下为扩展组件)。</p> <p>若需进一步检索 21st.dev 的其他组件,请调用其 API:<code>POST /api/prompts</code>,请求体为 <code>{"prompt_type":"extended","demo_id":<ID>}</code>。完整说明详见 <code>references/components.md</code>。</p> <h2>用户素材目录结构建议</h2> <p>当用户提供素材时,本技能期望(或推荐)采用如下组织结构:</p> <pre>materiais-projeto/ ├── logos/ ← Logo 各种变体(明/暗、横/竖) ├── identidade-visual/ ← 配色方案、品牌指南、字体规范 ├── imagens/ ← 产品照片、截图、设计稿(mockups) ├── apresentacoes/ ← 含产品信息的 PPT、PDF 文件 ├── clientes/ ← 客户/合作伙伴企业 Logo ├── components/ ← UI 组件参考文件(含 React 代码的 .txt) └── copy/ ← 文案、宣传语、描述性文字(如有单独整理) </pre> <p>若用户提供的素材未按此结构组织,本技能仍会主动遍历并完成归类;但若用户主动询问“如何组织素材?”,请直接推荐上述目录结构。</p> </div> </div> </div> <div class="list-downs"> <div class="authormore"> <div class="rightdTitle flexRow"> <div class="title-left flexRow"> <b></b> <p>作者最新文章</p> </div> </div> <div class="authlist flexColumn"> <div class="autharts flexRow"> <a class="autharta flexRow" href="/faq/3368380.html" title="HTML 中标题内嵌段落标签的渲染差异:解析器与 iframe 的真相"><b></b> <p class="overflowclass">HTML 中标题内嵌段落标签的渲染差异:解析器与 iframe 的真相</p> </a> </div> <div class="autharts flexRow"> <a class="autharta flexRow" href="/faq/3368382.html" title="如何在 Contao CMS 中集成 React Router 实现前端路由"><b></b> <p class="overflowclass">如何在 Contao CMS 中集成 React Router 实现前端路由</p> </a> </div> <div class="autharts flexRow"> <a class="autharta flexRow" href="/faq/3368385.html" title="HTML 中标题内嵌段落标签的渲染差异:解析器与代理服务的影响"><b></b> <p class="overflowclass">HTML 中标题内嵌段落标签的渲染差异:解析器与代理服务的影响</p> </a> </div> <div class="autharts flexRow"> <a class="autharta flexRow" href="/faq/3368386.html" title="如何修复 JavaScript 中 onclick 事件监听器仅触发一次的问题"><b></b> <p class="overflowclass">如何修复 JavaScript 中 onclick 事件监听器仅触发一次的问题</p> </a> </div> <div class="autharts flexRow"> <a class="autharta flexRow" href="/faq/3368396.html" title="HTML 中标题标签内嵌段落标签的渲染差异:解析器修正行为揭秘"><b></b> <p class="overflowclass">HTML 中标题标签内嵌段落标签的渲染差异:解析器修正行为揭秘</p> </a> </div> </div> </div> <div class="moreAi"> <div class="rightdTitle flexRow"> <div class="title-left flexRow"> <b></b> <p>热门AI工具</p> </div> <a class="rititle-more flexRow" href="/ai" title="热门AI工具"><span>更多</span><b></b></a> </div> <div class="moreailist flexRow"> <div class="aidcons flexRow"> <a href="/ai/920" title="Flowith" class="aibtns flexColumn"> <img src="https://img.php.cn/upload/ai_manual/000/000/000/175679997048461.png?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="Flowith" class="aibtnimg" onerror="this.src='https://staticm.php.cn/static/mobimages/moren.png'" /> <div class="aibtn-right"> <p class="overflowclass">Flowith</p> </div> <span class="hot_span">Hot</span> </a> <a href="/ai/723" title="DeepSeek" class="aibtns flexColumn"> <img src="https://img.php.cn/upload/ai_manual/000/000/000/175679963982777.png?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="DeepSeek" class="aibtnimg" onerror="this.src='https://staticm.php.cn/static/mobimages/moren.png'" /> <div class="aibtn-right"> <p class="overflowclass">DeepSeek</p> </div> </a> <a href="/ai/2110" title="蛙蛙写作" class="aibtns flexColumn"> <img src="https://img.php.cn/upload/ai_manual/001/246/273/68b6c9f8dba69666.png?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="蛙蛙写作" class="aibtnimg" onerror="this.src='https://staticm.php.cn/static/mobimages/moren.png'" /> <div class="aibtn-right"> <p class="overflowclass">蛙蛙写作</p> </div> <span class="hot_span">Hot</span> </a> <a href="/ai/2000" title="码上飞" class="aibtns flexColumn"> <img src="https://img.php.cn/upload/ai_manual/000/000/000/175679953098868.png?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="码上飞" class="aibtnimg" onerror="this.src='https://staticm.php.cn/static/mobimages/moren.png'" /> <div class="aibtn-right"> <p class="overflowclass">码上飞</p> </div> <span class="hot_span">Hot</span> </a> <a href="/ai/3369" title="Laper" class="aibtns flexColumn"> <img src="https://img.php.cn/upload/ai_manual/001/246/273/178599229095415.png?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="Laper" class="aibtnimg" onerror="this.src='https://staticm.php.cn/static/mobimages/moren.png'" /> <div class="aibtn-right"> <p class="overflowclass">Laper</p> </div> <span class="hot_span">Hot</span> </a> <a href="/ai/2785" title="VibeKnow" class="aibtns flexColumn"> <img src="https://img.php.cn/upload/ai_manual/000/969/633/6a82e46dd668f740.webp?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="VibeKnow" class="aibtnimg" onerror="this.src='https://staticm.php.cn/static/mobimages/moren.png'" /> <div class="aibtn-right"> <p class="overflowclass">VibeKnow</p> </div> <span class="hot_span">Hot</span> </a> <a href="/ai/726" title="豆包大模型" class="aibtns flexColumn"> <img src="https://img.php.cn/upload/ai_manual/001/246/273/69b379b1c5e3f597.png?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="豆包大模型" class="aibtnimg" onerror="this.src='https://staticm.php.cn/static/mobimages/moren.png'" /> <div class="aibtn-right"> <p class="overflowclass">豆包大模型</p> </div> </a> <a href="/ai/4297" title="PixTV" class="aibtns flexColumn"> <img src="https://img.php.cn/upload/ai_manual/001/246/273/6abb4764b88b5788.webp?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="PixTV" class="aibtnimg" onerror="this.src='https://staticm.php.cn/static/mobimages/moren.png'" /> <div class="aibtn-right"> <p class="overflowclass">PixTV</p> </div> <span class="hot_span">Hot</span> </a> </div> </div> </div> <div class="xgzt artLists"> <div class="rightdTitle flexRow"> <div class="title-left flexRow"> <b></b> <p>相关专题</p> </div> <a class="rititle-more flexRow" href="/faq/zt" title="相关专题"><span>更多</span><b></b></a> </div> <div class="swiper artztswiper"> <div class="swiper-wrapper"> <div class="swiper-slide flexcolumn"> <div class="clDiv flexRow"> <a href="/faq/uvicornbcywtj" class="aClass flexRow cldA" title="Uvicorn 报错与问题解决教程"><img src="https://img.php.cn/upload/subject/000/000/075/6ae7f1ea44e61939.jpg?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="Uvicorn 报错与问题解决教程" class="cldaimg" onerror="this.src='https://staticm.php.cn/static/mobimages/moren/moren.png'" /></a> <div class="clddiv flexColumn"> <a href="/faq/uvicornbcywtj" class="clddTitle overflowclass" title="Uvicorn 报错与问题解决教程">Uvicorn 报错与问题解决教程</a> <p class="clddp overflowclass">本专题汇总了Uvicorn服务器常见问题与报错解决的教程合集,涵盖启动失败、端口占用、模块导入错误、事件循环冲突及热重载失效等典型故障的排查思路。同时整理了多进程与Worker配置、SSL/HTTPS证书报错、跨域与代理配置等实战解决方案,助你快速定位并解决Uvicorn运行中的各类问题。</p> <div class="clddDown flexRow"> <div class="clddDown-left flexRow"> <div class="clddTime"> <b></b> <p>2026.11.02</p> </div> <div class="cldddh"> <b></b> <p>0</p> </div> <div class="cldddht"> <b></b> <p>14</p> </div> </div> </div> </div> </div> <div class="clDiv flexRow"> <a href="/faq/uvicornsyjc" class="aClass flexRow cldA" title="Uvicorn使用教程"><img src="https://img.php.cn/upload/subject/000/000/075/6ae7efaf6d996288.jpg?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="Uvicorn使用教程" class="cldaimg" onerror="this.src='https://staticm.php.cn/static/mobimages/moren/moren.png'" /></a> <div class="clddiv flexColumn"> <a href="/faq/uvicornsyjc" class="clddTitle overflowclass" title="Uvicorn使用教程">Uvicorn使用教程</a> <p class="clddp overflowclass">本专题汇总了Uvicorn使用教程与启动运行指南,涵盖其作为Python ASGI服务器的定位与特点,以及命令行启动(uvicorn main:app --reload)、参数配置(host/port/workers)、程序内嵌运行与Gunicorn结合部署等核心用法。同时整理了热重载调试、日志配置与生产环境部署优化等技巧,助你快速掌握Uvicorn的运行与配置。</p> <div class="clddDown flexRow"> <div class="clddDown-left flexRow"> <div class="clddTime"> <b></b> <p>2026.11.02</p> </div> <div class="cldddh"> <b></b> <p>0</p> </div> <div class="cldddht"> <b></b> <p>17</p> </div> </div> </div> </div> </div> <div class="clDiv flexRow"> <a href="/faq/uvicornanzpsj" class="aClass flexRow cldA" title="Uvicorn安装配置教程"><img src="https://img.php.cn/upload/subject/000/000/075/6ae7eba175f00209.jpg?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="Uvicorn安装配置教程" class="cldaimg" onerror="this.src='https://staticm.php.cn/static/mobimages/moren/moren.png'" /></a> <div class="clddiv flexColumn"> <a href="/faq/uvicornanzpsj" class="clddTitle overflowclass" title="Uvicorn安装配置教程">Uvicorn安装配置教程</a> <p class="clddp overflowclass">本专题汇总了Uvicorn的安装配置教程与部署指南,涵盖通过pip安装Uvicorn、启动FastAPI/Starlette应用、开发模式热重载(--reload)及多进程工作模式配置等核心操作。同时整理了结合Gunicorn的生产部署方案、HTTPS与反向代理配置及性能调优技巧,助你快速完成Uvicorn服务的安装与上线部署。</p> <div class="clddDown flexRow"> <div class="clddDown-left flexRow"> <div class="clddTime"> <b></b> <p>2026.11.02</p> </div> <div class="cldddh"> <b></b> <p>0</p> </div> <div class="cldddht"> <b></b> <p>17</p> </div> </div> </div> </div> </div> </div> <div class="swiper-slide flexcolumn"> <div class="clDiv flexRow"> <a href="/faq/vitebuilddep" class="aClass flexRow cldA" title="Vite 项目如何打包和部署"><img src="https://img.php.cn/upload/subject/000/000/090/6ae1679994991909.png?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="Vite 项目如何打包和部署" class="cldaimg" onerror="this.src='https://staticm.php.cn/static/mobimages/moren/moren.png'" /></a> <div class="clddiv flexColumn"> <a href="/faq/vitebuilddep" class="clddTitle overflowclass" title="Vite 项目如何打包和部署">Vite 项目如何打包和部署</a> <p class="clddp overflowclass">Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。</p> <div class="clddDown flexRow"> <div class="clddDown-left flexRow"> <div class="clddTime"> <b></b> <p>2026.10.28</p> </div> <div class="cldddh"> <b></b> <p>0</p> </div> <div class="cldddht"> <b></b> <p>16</p> </div> </div> </div> </div> </div> <div class="clDiv flexRow"> <a href="/faq/vitevueguide" class="aClass flexRow cldA" title="Vite 如何搭配 Vue.js"><img src="https://img.php.cn/upload/subject/000/000/090/6ae167a5c7d76429.png?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="Vite 如何搭配 Vue.js" class="cldaimg" onerror="this.src='https://staticm.php.cn/static/mobimages/moren/moren.png'" /></a> <div class="clddiv flexColumn"> <a href="/faq/vitevueguide" class="clddTitle overflowclass" title="Vite 如何搭配 Vue.js">Vite 如何搭配 Vue.js</a> <p class="clddp overflowclass">Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。</p> <div class="clddDown flexRow"> <div class="clddDown-left flexRow"> <div class="clddTime"> <b></b> <p>2026.10.28</p> </div> <div class="cldddh"> <b></b> <p>0</p> </div> <div class="cldddht"> <b></b> <p>15</p> </div> </div> </div> </div> </div> <div class="clDiv flexRow"> <a href="/faq/viteprojdir" class="aClass flexRow cldA" title="Vite 项目目录怎么看"><img src="https://img.php.cn/upload/subject/000/000/090/6ae167b2c6d75998.png?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="Vite 项目目录怎么看" class="cldaimg" onerror="this.src='https://staticm.php.cn/static/mobimages/moren/moren.png'" /></a> <div class="clddiv flexColumn"> <a href="/faq/viteprojdir" class="clddTitle overflowclass" title="Vite 项目目录怎么看">Vite 项目目录怎么看</a> <p class="clddp overflowclass">Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。</p> <div class="clddDown flexRow"> <div class="clddDown-left flexRow"> <div class="clddTime"> <b></b> <p>2026.10.28</p> </div> <div class="cldddh"> <b></b> <p>0</p> </div> <div class="cldddht"> <b></b> <p>10</p> </div> </div> </div> </div> </div> </div> <div class="swiper-slide flexcolumn"> <div class="clDiv flexRow"> <a href="/faq/gradlecjkfrmj" class="aClass flexRow cldA" title="Gradle插件开发入门教程"><img src="https://img.php.cn/upload/subject/000/000/085/6ad9dfa21e58e391.png?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="Gradle插件开发入门教程" class="cldaimg" onerror="this.src='https://staticm.php.cn/static/mobimages/moren/moren.png'" /></a> <div class="clddiv flexColumn"> <a href="/faq/gradlecjkfrmj" class="clddTitle overflowclass" title="Gradle插件开发入门教程">Gradle插件开发入门教程</a> <p class="clddp overflowclass">本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。</p> <div class="clddDown flexRow"> <div class="clddDown-left flexRow"> <div class="clddTime"> <b></b> <p>2026.10.22</p> </div> <div class="cldddh"> <b></b> <p>0</p> </div> <div class="cldddht"> <b></b> <p>11</p> </div> </div> </div> </div> </div> <div class="clDiv flexRow"> <a href="/faq/gradlewppzjc" class="aClass flexRow cldA" title="Gradle Wrapper配置教程"><img src="https://img.php.cn/upload/subject/000/000/085/6ad9de17d41f0542.png?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="Gradle Wrapper配置教程" class="cldaimg" onerror="this.src='https://staticm.php.cn/static/mobimages/moren/moren.png'" /></a> <div class="clddiv flexColumn"> <a href="/faq/gradlewppzjc" class="clddTitle overflowclass" title="Gradle Wrapper配置教程">Gradle Wrapper配置教程</a> <p class="clddp overflowclass">本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。</p> <div class="clddDown flexRow"> <div class="clddDown-left flexRow"> <div class="clddTime"> <b></b> <p>2026.10.22</p> </div> <div class="cldddh"> <b></b> <p>0</p> </div> <div class="cldddht"> <b></b> <p>10</p> </div> </div> </div> </div> </div> <div class="clDiv flexRow"> <a href="/faq/golangcijcq" class="aClass flexRow cldA" title="Golangci-lint检查器使用教程"><img src="https://img.php.cn/upload/subject/000/000/098/6ad9dd901b330239.png?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="Golangci-lint检查器使用教程" class="cldaimg" onerror="this.src='https://staticm.php.cn/static/mobimages/moren/moren.png'" /></a> <div class="clddiv flexColumn"> <a href="/faq/golangcijcq" class="clddTitle overflowclass" title="Golangci-lint检查器使用教程">Golangci-lint检查器使用教程</a> <p class="clddp overflowclass">本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。</p> <div class="clddDown flexRow"> <div class="clddDown-left flexRow"> <div class="clddTime"> <b></b> <p>2026.10.22</p> </div> <div class="cldddh"> <b></b> <p>0</p> </div> <div class="cldddht"> <b></b> <p>15</p> </div> </div> </div> </div> </div> </div> </div> </div> <div class="swiper-pagination coursesswiper-pagination"></div> <script> var mySwiper = new Swiper(".artztswiper", { autoplay: false, pagination: { el: ".coursesswiper-pagination", clickable: true, }, }); </script> </div> <div class="hotdownload "> <div class="rightdTitle flexRow"> <div class="title-left flexRow"> <b></b> <p>热门下载</p> </div> <a class="rititle-more flexRow" href="/xiazai" title="热门下载"><span>更多</span><b></b></a> </div> <div class="hotdownTab"> <div class="hdTabs flexRow"> <div class="check" data-id="onef">网站特效 <b></b> </div> / <div class="" data-id="twof">网站源码 <b></b></div> / <div class="" data-id="threef">网站素材 <b></b></div> / <div class="" data-id="fourf">前端模板 <b></b></div> </div> <ul class="onef"> <li> <div class="wzrfourli flexRow"> <b></b> <a title="登录表单页面js,现代化登录页面模板" href="/xiazai/js/10373"><span>[表单按钮]</span><span>登录表单页面js,现代化登录页面模板</span></a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a title="注册表单布局HTML代码,登录注册切换js模板" href="/xiazai/js/10372"><span>[表单按钮]</span><span>注册表单布局HTML代码,登录注册切换js模板</span></a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a title="文字透视变形设计,有趣的css滑动动画" href="/xiazai/js/10371"><span>[文字特效]</span><span>文字透视变形设计,有趣的css滑动动画</span></a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a title="精美登录注册UI,登录页面设计模板" href="/xiazai/js/10370"><span>[表单按钮]</span><span>精美登录注册UI,登录页面设计模板</span></a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a title="意境背景图片唯美下载,云破月来花弄影素材" href="/xiazai/js/10369"><span>[图片特效]</span><span>意境背景图片唯美下载,云破月来花弄影素材</span></a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a title="液体背景制作,创意液体文字动画" href="/xiazai/js/10368"><span>[其它特效]</span><span>液体背景制作,创意液体文字动画</span></a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a title="html滑块选择器,简单的滑块控制数字表达式" href="/xiazai/js/10367"><span>[其它特效]</span><span>html滑块选择器,简单的滑块控制数字表达式</span></a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a title="文本闪烁css,文字闪光动图特效" href="/xiazai/js/10366"><span>[其它特效]</span><span>文本闪烁css,文字闪光动图特效</span></a> </div> </li> </ul> <ul class="twof" style="display:none;"> <li> <div class="wzrfourli flexRow"> <b></b> <a href="/xiazai/code/12061" title="CodeIgniter4.6.1"><span>[开发框架]</span><span>CodeIgniter4.6.1</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a href="/xiazai/code/12060" title="Django Web框架5.2.2"><span>[开发框架]</span><span>Django Web框架5.2.2</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a href="/xiazai/code/12059" title="NutzFw企业级快速开发框架1.0.3"><span>[开发框架]</span><span>NutzFw企业级快速开发框架1.0.3</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a href="/xiazai/code/12058" title="go-admin前后端分离权限管理系统脚手架2.2.0"><span>[开发框架]</span><span>go-admin前后端分离权限管理系统脚手架2.2.0</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a href="/xiazai/code/12057" title="Ember.js3.28.9"><span>[开发框架]</span><span>Ember.js3.28.9</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a href="/xiazai/code/12056" title="MaxKey单点登录认证系统3.3.3"><span>[开发框架]</span><span>MaxKey单点登录认证系统3.3.3</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a href="/xiazai/code/12055" title="PHP7框架Phalcon71.2.3"><span>[开发框架]</span><span>PHP7框架Phalcon71.2.3</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a href="/xiazai/code/12054" title="TimoPHP开发框架1.4.1"><span>[开发框架]</span><span>TimoPHP开发框架1.4.1</span> </a> </div> </li> </ul> <ul class="threef" style="display:none;"> <li> <div class="wzrfourli flexRow"> <b></b> <a href="/xiazai/sucai/4936" title="二十四节气立冬背景矢量模板"><span>[网站素材]</span><span>二十四节气立冬背景矢量模板</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a href="/xiazai/sucai/4935" title="2027年新年主题海报PSD源文件下载"><span>[网站素材]</span><span>2027年新年主题海报PSD源文件下载</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a href="/xiazai/sucai/4934" title="本地有机市集水彩海报矢量素材"><span>[网站素材]</span><span>本地有机市集水彩海报矢量素材</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a href="/xiazai/sucai/4933" title="传统茶文化水彩海报背景矢量"><span>[网站素材]</span><span>传统茶文化水彩海报背景矢量</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a href="/xiazai/sucai/4932" title="万圣节活动海报矢量模板"><span>[网站素材]</span><span>万圣节活动海报矢量模板</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a href="/xiazai/sucai/4931" title="房屋销售主题方形海报PS素材下载"><span>[网站素材]</span><span>房屋销售主题方形海报PS素材下载</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a href="/xiazai/sucai/4930" title="万圣之夜氛围感节日海报设计下载"><span>[网站素材]</span><span>万圣之夜氛围感节日海报设计下载</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a href="/xiazai/sucai/4929" title="复古照相机摄影展海报矢量模板"><span>[网站素材]</span><span>复古照相机摄影展海报矢量模板</span> </a> </div> </li> </ul> <ul class="fourf" style="display:none;"> <li> <div class="wzrfourli flexRow"> <b></b> <a href="/xiazai/code/12112" title="探索文化产业服务机构网站模板"><span>[前端模板]</span><span>探索文化产业服务机构网站模板</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a href="/xiazai/code/12111" title="现代商业数字化服务公司网站模板"><span>[前端模板]</span><span>现代商业数字化服务公司网站模板</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a href="/xiazai/code/12110" title="响应式烟草公司HTML5网站模板"><span>[前端模板]</span><span>响应式烟草公司HTML5网站模板</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a href="/xiazai/code/12109" title="园艺服务机构响应式网页模板"><span>[前端模板]</span><span>园艺服务机构响应式网页模板</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a href="/xiazai/code/12108" title="HTML5日本动画动漫网站模板"><span>[前端模板]</span><span>HTML5日本动画动漫网站模板</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a href="/xiazai/code/12107" title="蛋糕烘焙美食宣传网站模板"><span>[前端模板]</span><span>蛋糕烘焙美食宣传网站模板</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a href="/xiazai/code/12106" title="黑白风格律师个人简历展示网页模板"><span>[前端模板]</span><span>黑白风格律师个人简历展示网页模板</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a href="/xiazai/code/12105" title="黑色风格摄影工作室宣传网站模板"><span>[前端模板]</span><span>黑色风格摄影工作室宣传网站模板</span> </a> </div> </li> </ul> </div> <script> $('.hdTabs>div').click(function (e) { $('.hdTabs>div').removeClass('check') $(this).addClass('check') $('.hotdownTab>ul').css('display', 'none') $('.' + e.currentTarget.dataset.id).show() }) </script> </div> <div class="xgarts "> <div class="rightdTitle flexRow"> <div class="title-left flexRow"> <b></b> <p>相关下载</p> </div> <a class="rititle-more flexRow" href="/xiazai" title=""><span>更多</span><b></b></a> </div> <div class="xgwzlist "> <div class="xgwzlid flexRow"><b></b><a title="MDPHP(麦迪php框架系统)1.1" href="/xiazai/code/12051">MDPHP(麦迪php框架系统)1.1</a></div> <div class="xgwzlid flexRow"><b></b><a title="PHP 多国语言框架2.0" href="/xiazai/code/12046">PHP 多国语言框架2.0</a></div> <div class="xgwzlid flexRow"><b></b><a title="ujframe简单快速PHP开发框架1.0" href="/xiazai/code/12045">ujframe简单快速PHP开发框架1.0</a></div> <div class="xgwzlid flexRow"><b></b><a title="php轻量型框架1.0" href="/xiazai/code/12044">php轻量型框架1.0</a></div> <div class="xgwzlid flexRow"><b></b><a title="MyQEE开源PHP多项目及模块化开发框架3.0 RC2" href="/xiazai/code/12041">MyQEE开源PHP多项目及模块化开发框架3.0 RC2</a></div> <div class="xgwzlid flexRow"><b></b><a title="php开源学习型框架CMVC1.2.0" href="/xiazai/code/12040">php开源学习型框架CMVC1.2.0</a></div> <div class="xgwzlid flexRow"><b></b><a title="PHP框架Kohana3.3.1" href="/xiazai/code/12039">PHP框架Kohana3.3.1</a></div> </div> </div> <div class="jpkc"> <div class="rightdTitle flexRow"> <div class="title-left flexRow"> <b></b> <p>精品课程</p> </div> <a class="rititle-more flexRow" href="/course/sort_new.html" title="精品课程"><span>更多</span><b></b></a> </div> <div class=" jpkcTab"> <div class=" jpkcTabs flexRow"> <div class="check" data-id="twofd">热门推荐 <b></b></div> / <div class="" data-id="threefd">最新课程 <b></b></div> </div> <div class="twofd jpktabd" > <div class="ristyA flexRow " > <a href="/course/639.html" title="phpStudy极速入门视频教程"> <img src="https://img.php.cn/upload/course/000/000/068/62611ef88fcec821.jpg?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="phpStudy极速入门视频教程" class="ristyAimg" onerror="this.src='https://staticm.php.cn/static/mobimages/moren/morentu.png'"> </a> <div class="ristyaRight flexColumn"> <a href="/course/639.html" title="phpStudy极速入门视频教程" class="rirightp overflowclass">phpStudy极速入门视频教程</a> <div class="risrdown flexRow"> <p>共6课时 | 54.7万人学习</p> </div> </div> </div> <div class="ristyA flexRow " > <a href="/course/379.html" title="独孤九贱(4)_PHP视频教程"> <img src="https://img.php.cn/upload/course/000/000/001/5d1c6dfc9eb09885.jpg?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="独孤九贱(4)_PHP视频教程" class="ristyAimg" onerror="this.src='https://staticm.php.cn/static/mobimages/moren/morentu.png'"> </a> <div class="ristyaRight flexColumn"> <a href="/course/379.html" title="独孤九贱(4)_PHP视频教程" class="rirightp overflowclass">独孤九贱(4)_PHP视频教程</a> <div class="risrdown flexRow"> <p>共89课时 | 134.1万人学习</p> </div> </div> </div> <div class="ristyA flexRow " > <a href="/course/801.html" title="PHP实战天龙八部之仿爱奇艺电影网站"> <img src="https://img.php.cn/upload/course/000/000/001/5d2426f409839992.jpg?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="PHP实战天龙八部之仿爱奇艺电影网站" class="ristyAimg" onerror="this.src='https://staticm.php.cn/static/mobimages/moren/morentu.png'"> </a> <div class="ristyaRight flexColumn"> <a href="/course/801.html" title="PHP实战天龙八部之仿爱奇艺电影网站" class="rirightp overflowclass">PHP实战天龙八部之仿爱奇艺电影网站</a> <div class="risrdown flexRow"> <p>共49课时 | 82.6万人学习</p> </div> </div> </div> </div> <div class="threefd jpktabd" style="display:none;"> <div class="ristyA flexRow " > <a href="/course/1558.html" title="RunnerGo从入门到精通"> <img src="https://img.php.cn/upload/course/000/000/067/6461bf1a464c1119.png?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="RunnerGo从入门到精通" class="ristyAimg" onerror="this.src='https://staticm.php.cn/static/mobimages/moren/morentu.png'"> </a> <div class="ristyaRight flexColumn"> <a href="/course/1558.html" title="RunnerGo从入门到精通" class="rirightp overflowclass">RunnerGo从入门到精通</a> <div class="risrdown flexRow"> <p>共22课时 | 2.5万人学习</p> </div> </div> </div> <div class="ristyA flexRow " > <a href="/course/1514.html" title="Apipost从入门到精通"> <img src="https://img.php.cn/upload/course/000/000/068/63db62f3d0b65880.jpg?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="Apipost从入门到精通" class="ristyAimg" onerror="this.src='https://staticm.php.cn/static/mobimages/moren/morentu.png'"> </a> <div class="ristyaRight flexColumn"> <a href="/course/1514.html" title="Apipost从入门到精通" class="rirightp overflowclass">Apipost从入门到精通</a> <div class="risrdown flexRow"> <p>共31课时 | 3.5万人学习</p> </div> </div> </div> <div class="ristyA flexRow " > <a href="/course/1511.html" title="WordPress零基础新手搭建个人博客及企业网站"> <img src="https://img.php.cn/upload/course/000/000/068/63c4f5a167a4b379.jpg?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="WordPress零基础新手搭建个人博客及企业网站" class="ristyAimg" onerror="this.src='https://staticm.php.cn/static/mobimages/moren/morentu.png'"> </a> <div class="ristyaRight flexColumn"> <a href="/course/1511.html" title="WordPress零基础新手搭建个人博客及企业网站" class="rirightp overflowclass">WordPress零基础新手搭建个人博客及企业网站</a> <div class="risrdown flexRow"> <p>共28课时 | 4.5万人学习</p> </div> </div> </div> </div> <script> $('.jpkcTabs>div').click(function (e) { $('.jpkcTabs>div').removeClass('check') $(this).addClass('check') $('.jpkcTab .jpktabd').css('display', 'none') $('.' + e.currentTarget.dataset.id).show() }) </script> </div> </div> <div class="zxarts "> <div class="rightdTitle flexRow"> <div class="title-left flexRow"> <b></b> <p>最新文章</p> </div> <a class="rititle-more flexRow" href="" title="最新文章"><span>更多</span><b></b></a> </div> <div class="xgwzlist "> <div class="xgwzlid flexRow"><b></b><a title="码上飞 官方入口 码上飞 AI应用开发官网入口" href="">码上飞 官方入口 码上飞 AI应用开发官网入口</a></div> <div class="xgwzlid flexRow"><b></b><a title="码上飞 注册入口 码上飞 AI智能开发官方登录入口" href="">码上飞 注册入口 码上飞 AI智能开发官方登录入口</a></div> <div class="xgwzlid flexRow"><b></b><a title="updream怎么拆解两个地点交替发生的剧情_updream交叉叙事分镜规划" href="">updream怎么拆解两个地点交替发生的剧情_updream交叉叙事分镜规划</a></div> <div class="xgwzlid flexRow"><b></b><a title="Lovart AI怎么用多视角图片准备视频分镜_Lovart AI分镜参考图制作指南" href="">Lovart AI怎么用多视角图片准备视频分镜_Lovart AI分镜参考图制作指南</a></div> <div class="xgwzlid flexRow"><b></b><a title="二狗PPT主题怎么做商务汇报?职场实用模板推荐" href="">二狗PPT主题怎么做商务汇报?职场实用模板推荐</a></div> <div class="xgwzlid flexRow"><b></b><a title="花生AI怎么按文案匹配画面_花生AI文案素材匹配技巧" href="">花生AI怎么按文案匹配画面_花生AI文案素材匹配技巧</a></div> <div class="xgwzlid flexRow"><b></b><a title="Lovart AI怎么用一句话修改选中的图片_Lovart AI对话改图操作步骤" href="">Lovart AI怎么用一句话修改选中的图片_Lovart AI对话改图操作步骤</a></div> <div class="xgwzlid flexRow"><b></b><a title="二狗PPT怎么制作活动执行流程图_二狗PPT活动执行环节绘制方法" href="">二狗PPT怎么制作活动执行流程图_二狗PPT活动执行环节绘制方法</a></div> <div class="xgwzlid flexRow"><b></b><a title="讯飞绘文怎么根据模板制作系列知识卡片_讯飞绘文知识套图复用方法" href="">讯飞绘文怎么根据模板制作系列知识卡片_讯飞绘文知识套图复用方法</a></div> <div class="xgwzlid flexRow"><b></b><a title="创客贴AI怎么放大检查抠图细节_创客贴AI抠图局部检查技巧" href="">创客贴AI怎么放大检查抠图细节_创客贴AI抠图局部检查技巧</a></div> </div> </div> </div> </div> </div> </div> <!--主体 end--> <script>isLogin = "0";</script> <script src="https://staticm.php.cn/static/js/cdn.js?v=1.0.1"></script> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?3fc525002bf1c4f1d536daef98e9a33c"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <script type="text/javascript" src="https://staticm.php.cn/static/js/global.js?v=1.3"></script> </div> </body> </html> <!-- Matomo --> <script> var _paq = window._paq = window._paq || []; /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="https://tongji.php.cn/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '49']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })(); </script> <!-- End Matomo Code -->