feat: 瀹屾垚鍏充簬鎴戜滑椤甸潰鍜孲EO浼樺寲
- 鍒涘缓瀹屾暣鐨勫叧浜庢垜浠〉闈㈢粍浠?- 娣诲姞鍝嶅簲寮忚璁★紝鏀寔绉诲姩绔拰PC绔?- 瀹炵幇瀹屾暣鐨凷EO閰嶇疆锛屽寘鎷琺eta鏍囩銆佺粨鏋勫寲鏁版嵁 - 娣诲姞sitemap鍜宺obots.txt鏀寔 - 瀹夎@nuxtjs/sitemap妯″潡 - 娣诲姞PWA manifest.json閰嶇疆 - 浣跨敤Tailwind CSS鏍峰紡鍜孨uxt UI缁勪欢
This commit is contained in:
parent
ca9c9a1dc1
commit
d44ca3fa15
|
|
@ -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'}
|
||||
]
|
||||
}
|
||||
}
|
||||
})
|
||||
|
|
@ -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",
|
||||
|
|
|
|||
102
pnpm-lock.yaml
102
pnpm-lock.yaml
|
|
@ -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
51
public/manifest.json
Normal 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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -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
|
||||
Loading…
Reference in New Issue
Block a user