[Ai] feat: 花魁短剧 Next.js 站点初始提交
- 原生 Next.js App Router + 严格 TypeScript 实现花魁短剧 PC/H5 页面,按 src/features/{catalog,content,playback} 组织,保留完整 SEO(metadata、JSON-LD、canonical、robots、llms、sitemap、IndexNow)。
- 主域名通过 SITE_URL=https://huakuidj.com 强制覆盖后端 foreverUrlAddr(config/*.env、src/server/config.ts、src/server/seo/shared.ts、src/server/services/shared.ts),支持邮箱改为 support@huakuidj.com。
- 移除登录与账户体系:删除 /account 全部页面、登录/注册/充值弹窗、收藏点赞、评论、金币解锁及对应 BFF 接口;旧账户地址 GET/HEAD 统一 301 到首页(src/lib/routes.ts REMOVED_ACCOUNT_PATHS),保留游客会话、反馈、图片上传、观看上报与搜索联想。
- 播放页:评论位改为同类推荐 + 热播榜单,锁定集改为 App 观看遮罩与底部弹层,新增简介标签、分集图例与独立视觉皮肤(src/features/playback、src/styles/pages/playback.css)。
- 卡片:短剧/视频卡状态与时长移至信息行胶囊标签,封面角标移至左上角(src/components/catalog/Cards.tsx、src/styles/foundations/base.css)。
- 同步更新单元测试、浏览器冒烟脚本、路由清单与 README。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
import type { NextConfig } from "next";
|
||||
|
||||
const env = process.env.APP_ENV || "development";
|
||||
const config: NextConfig = {
|
||||
output: "standalone",
|
||||
distDir:
|
||||
env === "production"
|
||||
? ".next"
|
||||
: env === "test"
|
||||
? ".next-test"
|
||||
: ".next-dev",
|
||||
poweredByHeader: false,
|
||||
// Go serves generated files without application compression; keep file byte lengths and ranges intact.
|
||||
// Public reverse proxies may apply the same transport compression used for the original Go service.
|
||||
compress: false,
|
||||
htmlLimitedBots: /.*/, // Keep complete SEO metadata in the initial HTML for every crawler/client.
|
||||
// Preserve source canonical redirects in proxy.ts before React rendering.
|
||||
skipTrailingSlashRedirect: true,
|
||||
skipProxyUrlNormalize: true,
|
||||
outputFileTracingIncludes: {
|
||||
"/*": [
|
||||
"./config/secrets/m3u8.key",
|
||||
"./template/pages/robots.txt",
|
||||
"./templates/pages/robots.txt",
|
||||
"./app/template/pages/robots.txt",
|
||||
"./app/templates/pages/robots.txt",
|
||||
"./config/seo/**/*",
|
||||
],
|
||||
},
|
||||
// Keep XML out of page traces. package-standalone.ts also removes copies from Node Proxy traces.
|
||||
outputFileTracingExcludes: {
|
||||
"/*": [
|
||||
"./template/pages/sitemaps/**/*",
|
||||
"./template/pages/sitemap.xml",
|
||||
"./data/sitemaps/**/*",
|
||||
],
|
||||
},
|
||||
async headers() {
|
||||
return [
|
||||
{
|
||||
source: "/sw.js",
|
||||
headers: [
|
||||
{ key: "Content-Type", value: "application/javascript; charset=utf-8" },
|
||||
{ key: "Cache-Control", value: "no-cache, no-store, must-revalidate" },
|
||||
{ key: "Service-Worker-Allowed", value: "/" },
|
||||
],
|
||||
},
|
||||
{
|
||||
source: "/static/:path*",
|
||||
headers: [
|
||||
{
|
||||
key: "Cache-Control",
|
||||
value: "public, max-age=604800, stale-while-revalidate=86400",
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
},
|
||||
};
|
||||
export default config;
|
||||
Reference in New Issue
Block a user