|
|
@@ -9,6 +9,8 @@ import ServiceConsultation from '@/components/support/ServiceConsultation';
|
|
|
|
|
|
export const dynamicParams = true
|
|
|
const BASE_URL = process.env.NEXT_PUBLIC_BASE_URL as string
|
|
|
+const REMOTE_BASE_URL = process.env.NEXT_PUBLIC_REMOTE_BASE_URL || 'http://47.107.107.47:8040'
|
|
|
+
|
|
|
export const generateStaticParams = async () => {
|
|
|
const res = await serverGet<Page<ProductCenter>, { pageNum: number; pageSize: number }>(
|
|
|
"/webSite/getProductByPage",
|
|
|
@@ -43,7 +45,24 @@ async function Page({
|
|
|
return <ContentNotFound/>
|
|
|
}
|
|
|
|
|
|
- return (
|
|
|
+ // 处理图片路径(解决 Next.js 生产环境拦截 localhost 图片导致的 400 报错)
|
|
|
+ let coverImageUrl = res.data.productUrl || '';
|
|
|
+ if (coverImageUrl) {
|
|
|
+ if (coverImageUrl.startsWith('http')) {
|
|
|
+ if (coverImageUrl.includes('localhost')) {
|
|
|
+ try {
|
|
|
+ const urlObj = new URL(coverImageUrl);
|
|
|
+ coverImageUrl = `${REMOTE_BASE_URL}${urlObj.pathname}${urlObj.search}`;
|
|
|
+ } catch (e) {}
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ coverImageUrl = `${REMOTE_BASE_URL.replace(/\/$/, '')}/${coverImageUrl.replace(/^\//, '')}`;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ coverImageUrl = "/assets/home/20.png"
|
|
|
+ }
|
|
|
+
|
|
|
+ return (
|
|
|
<>
|
|
|
<div className="w-4/5 mx-auto">
|
|
|
<div className="pt-5 sm:pt-10 sm:ml-20 flex gap-2">
|
|
|
@@ -73,7 +92,7 @@ async function Page({
|
|
|
{/*/>*/}
|
|
|
<Image
|
|
|
className="w-full h-64 sm:h-[300px] object-contain"
|
|
|
- src={res.data.productUrl ? BASE_URL + res.data.productUrl : "/assets/home/20.png"}
|
|
|
+ src={coverImageUrl}
|
|
|
alt={res.data.productName ? res.data.productName : "产品详情"}
|
|
|
width={1000}
|
|
|
height={1000}
|