以下是针对前端网页开发中常见问题的技术解决方案,涵盖meta标签、Nuxt.js、图标尺寸及性能优化等方面:
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="不超过150字的页面描述">
<meta name="keywords" content="关键词1,关键词2">
<meta property="og:title" content="页面标题">
<meta property="og:image" content="缩略图URL">
<meta property="og:description" content="分享描述">
<!-- 禁止电话号码自动识别 -->
<meta name="format-detection" content="telephone=no">
<!-- 禁止邮箱自动识别 -->
<meta name="format-detection" content="email=no">
// nuxt.config.js
export default {
router: {
middleware: 'auth', // 全局中间件
extendRoutes(routes, resolve) {
routes.push({
path: '/custom',
component: resolve(__dirname, 'pages/custom.vue')
})
}
}
}
// 页面级数据获取
export default {
async asyncData({ $axios }) {
const data = await $axios.$get('/api/data')
return { data }
}
}
// 使用~/assets目录
<img src="~/assets/images/logo.png" alt="Logo">
// 配置build选项
export default {
build: {
loaders: {
imgUrl: { limit: 8192 } // 8KB以下转为base64
}
}
}
<!-- 主图标 -->
<link rel="icon" href="/favicon.ico" sizes="any">
<!-- SVG现代浏览器 -->
<link rel="icon" href="/icon.svg" type="image/svg+xml">
<!-- Apple设备 -->
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<!-- 微软磁贴 -->
<meta name="msapplication-TileImage" content="/mstile-144x144.png">
用途 | 尺寸 | 格式 |
---|---|---|
主favicon | 32x32 | .ico |
Apple Touch Icon | 180x180 | .png |
Android Chrome | 192x192 | .png |
Windows Tile | 144x144 | .png |
OpenGraph图片 | 1200x630 | .jpg |
<!-- 预加载关键资源 -->
<link rel="preload" href="/critical.css" as="style">
<link rel="preconnect" href="https://cdn.example.com">
<!-- 异步加载非关键JS -->
<script defer src="non-critical.js"></script>
<picture>
<source srcset="image.webp" type="image/webp">
<source srcset="image.jpg" type="image/jpeg">
<img src="image.jpg" alt="Fallback">
</picture>
// nuxt.config.js
export default {
render: {
http2: {
push: true
},
compressor: {
threshold: 1024
}
},
build: {
analyze: true, // 启用打包分析
optimization: {
splitChunks: {
maxSize: 244 * 1024 // 拆分大文件
}
}
}
}
// 动态polyfill方案
export default {
head: {
script: [
{
src: 'https://polyfill.io/v3/polyfill.min.js?features=es2015%2Ces2016',
body: true
}
]
}
}
- Google Rich Results Test - Lighthouse (Chrome DevTools) - WebPageTest.org
# 使用curl测试gzip压缩
curl -H "Accept-Encoding: gzip" -I https://your-site.com
# 使用pagespeed-cli本地测试
npx pagespeed-insights https://your-site.com
以上方案可根据具体项目需求进行组合使用,建议通过A/B测试验证优化效果。对于Nuxt.js项目,特别注意SSR和静态生成模式下的配置差异。