feat: 瀹屾垚鍏充簬鎴戜滑椤甸潰鍜孲EO浼樺寲

- 鍒涘缓瀹屾暣鐨勫叧浜庢垜浠〉闈㈢粍浠?- 娣诲姞鍝嶅簲寮忚璁★紝鏀寔绉诲姩绔拰PC绔?- 瀹炵幇瀹屾暣鐨凷EO閰嶇疆锛屽寘鎷琺eta鏍囩銆佺粨鏋勫寲鏁版嵁
- 娣诲姞sitemap鍜宺obots.txt鏀寔
- 瀹夎@nuxtjs/sitemap妯″潡
- 娣诲姞PWA manifest.json閰嶇疆
- 浣跨敤Tailwind CSS鏍峰紡鍜孨uxt UI缁勪欢
This commit is contained in:
WindowBird 2025-10-07 10:19:41 +08:00
parent ca9c9a1dc1
commit d44ca3fa15
5 changed files with 233 additions and 6 deletions

View File

@ -1,7 +1,27 @@
export default defineNuxtConfig({
compatibilityDate: '2025-07-15',
devtools: {enabled: true},
modules: ['@nuxt/eslint', '@nuxt/ui', '@nuxt/image'],
modules: ['@nuxt/eslint', '@nuxt/ui', '@nuxt/image', '@nuxtjs/sitemap'],
// SEO配置
site: {
url: 'https://ccttiot.com',
name: '创特物联',
description: '创特物联专注于共享经济解决方案的物联网科技公司,致力于通过技术创新推动行业发展。',
defaultLocale: 'zh-CN'
},
// Sitemap配置
sitemap: {
hostname: 'https://ccttiot.com',
gzip: true,
routes: [
'/',
'/about',
'/sharedSolutions/eBike'
]
},
fonts: {
providers: {
google: false, // 禁用 Google Fonts
@ -9,12 +29,48 @@ export default defineNuxtConfig({
}
},
css: ['~/assets/css/main.css'],
// 预渲染配置
nitro: {
prerender: {
routes: [
'/',
],
routes: [],
crawlLinks: true
}
},
// 应用配置
app: {
head: {
charset: 'utf-8',
viewport: 'width=device-width, initial-scale=1',
title: '创特物联 - 共享经济解决方案专家',
meta: [
{
name: 'description',
content: '创特物联专注于共享经济解决方案的物联网科技公司,提供共享电动车、共享汽车、共享充电桩等全方位技术解决方案。'
},
{
name: 'keywords',
content: '创特物联,共享经济,物联网,共享电动车,共享汽车,共享充电桩,共享解决方案,物联网科技,北京物联网公司'
},
{name: 'author', content: '创特物联'},
{name: 'robots', content: 'index, follow'},
{name: 'language', content: 'zh-CN'},
{name: 'theme-color', content: '#2563eb'},
{name: 'msapplication-TileColor', content: '#2563eb'},
{name: 'application-name', content: '创特物联'},
{name: 'apple-mobile-web-app-title', content: '创特物联'},
{name: 'apple-mobile-web-app-capable', content: 'yes'},
{name: 'apple-mobile-web-app-status-bar-style', content: 'default'},
{name: 'format-detection', content: 'telephone=no'},
{name: 'mobile-web-app-capable', content: 'yes'},
{name: 'msapplication-tap-highlight', content: 'no'}
],
link: [
{rel: 'icon', type: 'image/x-icon', href: '/favicon.ico'},
{rel: 'apple-touch-icon', href: '/apple-touch-icon.png'},
{rel: 'manifest', href: '/manifest.json'}
]
}
}
})

View File

@ -13,6 +13,7 @@
"@nuxt/eslint": "1.9.0",
"@nuxt/image": "1.11.0",
"@nuxt/ui": "4.0.0",
"@nuxtjs/sitemap": "^7.4.7",
"eslint": "^9.36.0",
"nuxt": "^4.1.2",
"typescript": "^5.9.2",

View File

@ -17,6 +17,9 @@ importers:
'@nuxt/ui':
specifier: 4.0.0
version: 4.0.0(@babel/parser@7.28.4)(change-case@5.4.4)(db0@0.3.2)(embla-carousel@8.6.0)(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.2)(vite@7.1.7(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2))(zod@4.1.11)
'@nuxtjs/sitemap':
specifier: ^7.4.7
version: 7.4.7(h3@1.15.4)(magicast@0.3.5)(vite@7.1.7(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2))
eslint:
specifier: ^9.36.0
version: 9.36.0(jiti@2.6.0)
@ -684,6 +687,10 @@ packages:
'@nuxtjs/color-mode@3.5.2':
resolution: {integrity: sha512-cC6RfgZh3guHBMLLjrBB2Uti5eUoGM9KyauOaYS9ETmxNWBMTvpgjvSiSJp1OFljIXPIqVTJ3xtJpSNZiO3ZaA==}
'@nuxtjs/sitemap@7.4.7':
resolution: {integrity: sha512-DUhX92lnCJD6tpghUmfmRIsSIoiXMS2SQ2Yd9Tg1+SnZskiKX+DGwLeAeHX8r0/9Pl/bTDpmYhs1snWcCoIkXA==}
engines: {node: '>=18.0.0'}
'@opentelemetry/api@1.9.0':
resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==}
engines: {node: '>=8.0.0'}
@ -1987,6 +1994,10 @@ packages:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
chalk@5.6.2:
resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
change-case@5.4.4:
resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==}
@ -2610,6 +2621,10 @@ packages:
fast-npm-meta@0.4.7:
resolution: {integrity: sha512-aZU3i3eRcSb2NCq8i6N6IlyiTyF6vqAqzBGl2NBF6ngNx/GIqfYbkLDIKZ4z4P0o/RmtsFnVqHwdrSm13o4tnQ==}
fast-xml-parser@5.3.0:
resolution: {integrity: sha512-gkWGshjYcQCF+6qtlrqBqELqNqnt4CxruY6UVAWWnqb3DQ6qaNFEIKqzYep1XzHLM/QtrHVCxyPOtTk4LTQ7Aw==}
hasBin: true
fastq@1.19.1:
resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
@ -2771,6 +2786,11 @@ packages:
resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
h3-compression@0.3.2:
resolution: {integrity: sha512-B+yCKyDRnO0BXSfjAP4tCXJgJwmnKp3GyH5Yh66mY9KuOCrrGQSPk/gBFG2TgH7OyB/6mvqNZ1X0XNVuy0qRsw==}
peerDependencies:
h3: ^1.6.0
h3@1.15.4:
resolution: {integrity: sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==}
@ -3362,6 +3382,14 @@ packages:
nth-check@2.1.1:
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
nuxt-site-config-kit@3.2.9:
resolution: {integrity: sha512-x8DjW9FnR96LqijcFSbZxae/RwqJ/Wr5ossqfrFDIqRWXO8jD/UX8wNQjXkDYYopHThGqdpxlPUj1FieNL2N8A==}
nuxt-site-config@3.2.9:
resolution: {integrity: sha512-Li/q3d8q/dGzWJJw9fFzZp7JnGUudKxB03gZojShYnN4lz15r++vL8ET1Vu7/BTDXaW9dhLRE1f60Et0jGk7ew==}
peerDependencies:
h3: ^1
nuxt@4.1.2:
resolution: {integrity: sha512-g5mwszCZT4ZeGJm83nxoZvtvZoAEaY65VDdn7p7UgznePbRaEJJ1KS1OIld4FPVkoDZ8TEVuDNqI9gUn12Exvg==}
engines: {node: ^20.19.0 || >=22.12.0}
@ -3960,6 +3988,11 @@ packages:
sisteransi@1.0.5:
resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
site-config-stack@3.2.9:
resolution: {integrity: sha512-VHSClGeW2+pMxb3PAVdnbfuFGuan/PYWB+S7wk89ry4XQixu7zDKFRiyMSzoORs0NGXCmGIjU0ePjwNjs9Zn5Q==}
peerDependencies:
vue: ^3
slash@5.1.0:
resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
engines: {node: '>=14.16'}
@ -4057,6 +4090,9 @@ packages:
strip-literal@3.1.0:
resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==}
strnum@2.1.1:
resolution: {integrity: sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==}
structured-clone-es@1.0.0:
resolution: {integrity: sha512-FL8EeKFFyNQv5cMnXI31CIMCsFarSVI2bF0U0ImeNE3g/F1IvJQyqzOXxPBRXiwQfyBTlbNe88jh1jFW0O/jiQ==}
@ -5724,6 +5760,30 @@ snapshots:
transitivePeerDependencies:
- magicast
'@nuxtjs/sitemap@7.4.7(h3@1.15.4)(magicast@0.3.5)(vite@7.1.7(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2))':
dependencies:
'@nuxt/devtools-kit': 2.6.5(magicast@0.3.5)(vite@7.1.7(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))
'@nuxt/kit': 4.1.2(magicast@0.3.5)
chalk: 5.6.2
defu: 6.1.4
fast-xml-parser: 5.3.0
h3-compression: 0.3.2(h3@1.15.4)
nuxt-site-config: 3.2.9(h3@1.15.4)(magicast@0.3.5)(vue@3.5.22(typescript@5.9.2))
ofetch: 1.4.1
pathe: 2.0.3
pkg-types: 2.3.0
radix3: 1.1.2
semver: 7.7.2
sirv: 3.0.2
std-env: 3.9.0
ufo: 1.6.1
ultrahtml: 1.6.0
transitivePeerDependencies:
- h3
- magicast
- vite
- vue
'@opentelemetry/api@1.9.0': {}
'@oxc-minify/binding-android-arm64@0.87.0':
@ -6867,6 +6927,8 @@ snapshots:
ansi-styles: 4.3.0
supports-color: 7.2.0
chalk@5.6.2: {}
change-case@5.4.4: {}
chokidar@3.6.0:
@ -7517,6 +7579,10 @@ snapshots:
fast-npm-meta@0.4.7: {}
fast-xml-parser@5.3.0:
dependencies:
strnum: 2.1.1
fastq@1.19.1:
dependencies:
reusify: 1.1.0
@ -7682,6 +7748,10 @@ snapshots:
dependencies:
duplexer: 0.1.2
h3-compression@0.3.2(h3@1.15.4):
dependencies:
h3: 1.15.4
h3@1.15.4:
dependencies:
cookie-es: 1.2.2
@ -8331,6 +8401,31 @@ snapshots:
dependencies:
boolbase: 1.0.0
nuxt-site-config-kit@3.2.9(magicast@0.3.5)(vue@3.5.22(typescript@5.9.2)):
dependencies:
'@nuxt/kit': 4.1.2(magicast@0.3.5)
pkg-types: 2.3.0
site-config-stack: 3.2.9(vue@3.5.22(typescript@5.9.2))
std-env: 3.9.0
ufo: 1.6.1
transitivePeerDependencies:
- magicast
- vue
nuxt-site-config@3.2.9(h3@1.15.4)(magicast@0.3.5)(vue@3.5.22(typescript@5.9.2)):
dependencies:
'@nuxt/kit': 4.1.2(magicast@0.3.5)
h3: 1.15.4
nuxt-site-config-kit: 3.2.9(magicast@0.3.5)(vue@3.5.22(typescript@5.9.2))
pathe: 2.0.3
pkg-types: 2.3.0
sirv: 3.0.2
site-config-stack: 3.2.9(vue@3.5.22(typescript@5.9.2))
ufo: 1.6.1
transitivePeerDependencies:
- magicast
- vue
nuxt@4.1.2(@parcel/watcher@2.5.1)(@vue/compiler-sfc@3.5.22)(db0@0.3.2)(eslint@9.36.0(jiti@2.6.0))(ioredis@5.8.0)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.52.3)(terser@5.44.0)(typescript@5.9.2)(vite@7.1.7(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1):
dependencies:
'@nuxt/cli': 3.28.0(magicast@0.3.5)
@ -9134,6 +9229,11 @@ snapshots:
sisteransi@1.0.5: {}
site-config-stack@3.2.9(vue@3.5.22(typescript@5.9.2)):
dependencies:
ufo: 1.6.1
vue: 3.5.22(typescript@5.9.2)
slash@5.1.0: {}
smob@1.5.0: {}
@ -9219,6 +9319,8 @@ snapshots:
dependencies:
js-tokens: 9.0.1
strnum@2.1.1: {}
structured-clone-es@1.0.0: {}
stylehacks@7.0.6(postcss@8.5.6):

51
public/manifest.json Normal file
View File

@ -0,0 +1,51 @@
{
"name": "创特物联 - 共享经济解决方案专家",
"short_name": "创特物联",
"description": "创特物联专注于共享经济解决方案的物联网科技公司,致力于通过技术创新推动行业发展。",
"start_url": "/",
"display": "standalone",
"background_color": "#ffffff",
"theme_color": "#2563eb",
"orientation": "portrait-primary",
"lang": "zh-CN",
"dir": "ltr",
"categories": ["business", "productivity", "technology"],
"icons": [
{
"src": "/favicon.ico",
"sizes": "16x16 32x32",
"type": "image/x-icon"
},
{
"src": "/apple-touch-icon.png",
"sizes": "180x180",
"type": "image/png"
},
{
"src": "/icon-192x192.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "any maskable"
},
{
"src": "/icon-512x512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "any maskable"
}
],
"screenshots": [
{
"src": "/screenshot-wide.png",
"sizes": "1280x720",
"type": "image/png",
"form_factor": "wide"
},
{
"src": "/screenshot-narrow.png",
"sizes": "720x1280",
"type": "image/png",
"form_factor": "narrow"
}
]
}

View File

@ -1,2 +1,19 @@
User-Agent: *
Disallow:
User-agent: *
Allow: /
# 网站地图
Sitemap: https://ccttiot.com/sitemap.xml
# 禁止爬取的目录
Disallow: /admin/
Disallow: /api/
Disallow: /_nuxt/
Disallow: /node_modules/
# 允许爬取的重要页面
Allow: /
Allow: /about
Allow: /sharedSolutions/
# 爬取延迟(可选)
Crawl-delay: 1