getServerSideProps() 没有被调用 nextJS 13
P粉211600174
P粉211600174 2023-10-31 15:38:58
[React讨论组]

试图熟悉 nextJS 13。 我遇到的是 getServerSideProps 函数没有预渲染页面道具。这是我第一次尝试,所以我不知道我是否做错了。

这里是/app/login/page.js

import Content from "@/components/content";
import LoginForm from "@/components/loginForm";
import Title from "@/components/title";

function Login({ message }) {
    return (
        
            
{message || "NextJS is ok."} </div> <LoginForm /> </Content> ); } export default Login; export async function getServerSideProps() { console.log("running getServerSideProps function.."); return { props: { message: "NextJS is awesome!" }, }; }</pre> <p>我在这里想要实现的关键是在显示登录页面之前使用 axios 请求检查服务器的会话密钥。如果用户已登录,则应将用户重定向到主页。如果我能够使此功能正常工作,这是未来的代码:</p> <pre class="brush:php;toolbar:false;">export async function getServerSideProps() { console.log("Im running getServerSideProps funct "); let isLoggedIn = false; try { const response = await api.get("/users/session-check", { withCredentials: true, }); if (response.status === 200) isLoggedIn = true; } catch (err) { console.log(err.message); } if (isLoggedIn) { return { redirect: { destination: "/", permanent: false, }, }; } return { props: {}, }; }</pre> <p>我尝试使用 <code 重新启动="">npm run dev</code> 仍然得到相同的结果...</p> </div> <div class="share flexRow"> <div class="shareReply flexColumn shareDiv"> <a href="javascript:;"><img class="sharerImg" src="/static/images/images/icon50.png" data-id="1"></a> <span class="sharerSpan">2</span> </div> <div class="shareLike flexColumn shareDiv" onclick="ask_comment_good(173334)"> <a href="javascript:;" > <img class="sharerImg" src="/static/images/images/icon52.png" data-id="2"> </a> <span class="sharerSpan">0</span> </div> <div class="shareLDz flexColumn shareDiv dzdiv dzdiv1 aiaskgoodICollection" data-id=""> <a href="javascript:;" > <img class="sharerImg " src="/static/images/images/icon37.png" data-id="5"> </a> <span class="sharerSpan">0</span> </div> </div> <script> $('.jbtitleimg').on('click',function(){ $("#layuitc").hide() var layer = layui.layer; layer.closeAll(); }) $('.jbbtn').on('click',function(){ $("#layuitc").hide() var layer = layui.layer; layer.closeAll(); }) $('.sharerImg').mouseenter(function(e){ var dataId = e.currentTarget.dataset.id if(dataId == 1){ // $('.shareReply').find('img').attr('src','/static/images/images/icon51.png') }else if(dataId == 2){ // $('.shareLike').find('img').attr('src','/static/images/images/icon53.png') }else if(dataId == 4){ $('.shareShare').find('img').attr('src','/static/images/images/icon55.png') }else{ } }) $('.sharerImg').mouseleave(function(e){ var dataId = e.currentTarget.dataset.id if(dataId == 1){ // $('.shareReply').find('img').attr('src','/static/images/images/icon50.png') }else if(dataId == 2){ // $('.shareLike').find('img').attr('src','/static/images/images/icon52.png') }else if(dataId == 4){ $('.shareShare').find('img').attr('src','/static/images/images/icon54.png') } }) </script> <!-- <div class="reply">--> <!----> <!-- <div class="replyTop flexRow">--> <!-- <div class="retLeft flexRow">--> <!-- <img src="/static/images/examples/text55.png" class="retlAvatar" >--> <!-- <span class="retlName">飞儿</span>--> <!-- </div>--> <!-- <a href="#"><img src="/static/images/images/icon-del.png" class="retRight"></a>--> <!-- </div>--> <!-- <img src="/static/images/examples/text26.jpg" class="replyTextarea">--> <!-- <button type="button" class="replayBtn">回答</button>--> <!-- </div>--> <div id="commentinput" class="info detail-comment-input layui-hide-sm"> <div class="detail-ci-avator"> <img src="https://www.php.cn/static/images/user_avatar.jpg" alt="P粉211600174"/> <div class="detail-r"> <span class="detail-name">P粉211600174</span> <p class="detail-signal"></p> </div> </div> <div id="js-reply-wrap"> <div id="js-reply-editor-box" class="wd-comment-box js-ci-inner edui-imooc"></div> <div class="qa-ci-footer"> <div class="qa-ci-footright"> <button id="js-wenda-ci-submit" class="detail-btn" data-qid="173334">回答</button> </div> </div> </div> </div> <div id="pinglundeplace" class="allReply ask-reply-all-list comments-content"> <div class="arTop flexRow"> <div class="artLeft flexRow fontBold fontColor1">全部回复<b class="artlb colorGrey">(2)</b></div> <button class="artBtn ask-comment-answer">我来回复</button> </div> <div class="allReplayLine"></div> <div class="wdsyConDiv flexRow ask_top_ul"> <img src="https://www.php.cn/static/images/user_avatar.jpg" alt="P粉166779363" class="wdcdImg"> <div class="wdcdContent flexColumn"> <div class="wdcdContentReply"> <div class="wdxqrcTop flexRow"> <a href="/member/1271591.html" target="_blank" class="wdcdcName">P粉166779363<b class="wdxqRcT colorGrey">2023-11-01 11:37:06</b></a> <span class="wdxqrcTopspan colorGrey">2楼</span> </div> <div class="wdcdcCons"><p>您似乎正在尝试使用 <code>getServerSideProps</code> 在显示页面之前执行服务器端渲染和身份验证检查。从您的代码来看,您似乎走在正确的轨道上。</p> <p>但是,我注意到您没有将从 <code>getServerSideProps</code> 返回的 props 传递给您的 <code>Login</code> 组件。为了将服务器端属性传递给组件,您需要修改 <code>Login</code> 函数以接受 <code>message</code> 属性,如下所示:</p> <pre class="brush:php;toolbar:false;">function Login({ message }) { return ( <Content> <div className="ml-2 my-2"> {message || "NextJS is ok."} <Title text="Login" /> </div> <LoginForm /> </Content> ); }</pre> <p>此外,由于您使用的是 <code>getServerSideProps</code>,您的 <code>npm run dev</code> 命令不会为您的页面生成静态 HTML 文件。相反,页面将根据每个请求生成。因此,如果您想测试 <code>getServerSideProps</code> 是否正常工作,您需要向浏览器中的页面发出请求,并检查控制台日志以获取 <code>console.log( )</code>声明。</p> <p>我希望这有帮助!如果您还有任何其他问题,请告诉我。</p></div> <div class="wdcdcInfo flexRow"> <a href="javascript:ask_reply_good(257321)"> <img class="wdxqindz" src="/static/images/images/icon27.png"></a> <span class="wdxqindzspan">赞 <b>+0</b></span> <div class="wdcdcileft"> <a href="javascript:;" class="wdcdciSpan reply">添加回复</a> </div> </div> <div class="wdcdContentReplyss" style="display: none;"> <div class="reply textarea-con"> <div class="replyTop flexRow"> <div class="retLeft flexRow"> <img src="https://www.php.cn/static/images/user_avatar.jpg" class="retlAvatar" > <span class="retlName">P粉211600174</span> </div> <!-- <a href="#"><img src="../images/images/icon-del.png" class="retRight"></a>--> </div> <textarea class="replaytext colorGrey" id="release-reply" placeholder="写下你的回复"></textarea> <button type="button" class="replayBtn do-reply-btn" data-id="257321">回复</button> </div> </div> <div class="wdcdContentReplyss"> <ul class="replyssul"> </ul> </div> </div> </div> </div> <div class="wdsyCondivLine"></div> <div class="wdsyConDiv flexRow ask_top_ul"> <img src="https://www.php.cn/static/images/user_avatar.jpg" alt="P粉663883862" class="wdcdImg"> <div class="wdcdContent flexColumn"> <div class="wdcdContentReply"> <div class="wdxqrcTop flexRow"> <a href="/member/1271723.html" target="_blank" class="wdcdcName">P粉663883862<b class="wdxqRcT colorGrey">2023-11-01 09:35:08</b></a> <span class="wdxqrcTopspan colorGrey">1楼</span> </div> <div class="wdcdcCons"><p>因此,正如我在评论中提到的,您应该遵循此 <a href="https://nextjs.org/docs/app/building-your-application/data-fetching/fetching#async-and-await-in%20-server-components" rel="nofollow noreferrer">https://nextjs.org/docs/app/building-your-application/data-fetching/fetching#async-and-await-in-server-components</a> 当您使用 Next 13 和 <code>app</code> 文件夹时。</p> <p>这意味着您可以尝试这样的操作:</p> <pre class="brush:php;toolbar:false;">import { redirect } from 'next/navigation'; import Content from "@/components/content"; import LoginForm from "@/components/loginForm"; import Title from "@/components/title"; async function isLoggedIn() { try { const response = await api.get("/users/session-check", { withCredentials: true, }); if (response.status === 200) return true; } catch (err) { console.log(err.message); } return false; } export default async function Page() { const isLogged = await isLoggedIn(); if (!isLogged) redirect('/'); return ( <Content> <div className="ml-2 my-2"> {"NextJS is ok."} <Title text="Login" /> </div> <LoginForm /> </Content> ); }</pre> <p>当然,您需要添加消息道具。</p></div> <div class="wdcdcInfo flexRow"> <a href="javascript:ask_reply_good(257320)"> <img class="wdxqindz" src="/static/images/images/icon27.png"></a> <span class="wdxqindzspan">赞 <b>+0</b></span> <div class="wdcdcileft"> <a href="javascript:;" class="wdcdciSpan reply">添加回复</a> </div> </div> <div class="wdcdContentReplyss" style="display: none;"> <div class="reply textarea-con"> <div class="replyTop flexRow"> <div class="retLeft flexRow"> <img src="https://www.php.cn/static/images/user_avatar.jpg" class="retlAvatar" > <span class="retlName">P粉211600174</span> </div> <!-- <a href="#"><img src="../images/images/icon-del.png" class="retRight"></a>--> </div> <textarea class="replaytext colorGrey" id="release-reply" placeholder="写下你的回复"></textarea> <button type="button" class="replayBtn do-reply-btn" data-id="257320">回复</button> </div> </div> <div class="wdcdContentReplyss"> <ul class="replyssul"> </ul> </div> </div> </div> </div> <div class="wdsyCondivLine"></div> <div></div> </div> </div> <!-- left end --> <div class="phpwzright wdxq"> <a href="javascript:void(0);" onclick="publish_ask('发布话题',1)"><img src="/static/images/images/needtiwen.png" class="wdxqrImg"></a> <div class="wzrTwo"> <div class="wzrt-title"> <div>专题推荐</div> <a href="/faq/zt">更多> </a> </div> <div class="wzrtlist"> <ul> <li> <a target="_blank" href="/faq/vlookuphsdsyf"><img src="https://img.php.cn/upload/subject/202311/17/2023111710422063379.jpg?x-oss-process=image/resize,m_fill,h_96,w_156" /> </a> <a target="_blank" href="/faq/vlookuphsdsyf" class="title-a-spanl"><span>vlookup函数的使用方法</span> </a> </li> <li> <a target="_blank" href="/faq/vvbzmjy"><img src="https://img.php.cn/upload/subject/202402/27/2024022714215866823.jpg?x-oss-process=image/resize,m_fill,h_96,w_156" /> </a> <a target="_blank" href="/faq/vvbzmjy" class="title-a-spanl"><span>VV币怎么交易</span> </a> </li> <li> <a target="_blank" href="/faq/yddfwmmss"><img src="https://img.php.cn/upload/subject/202308/28/2023082811265219690.jpg?x-oss-process=image/resize,m_fill,h_96,w_156" /> </a> <a target="_blank" href="/faq/yddfwmmss" class="title-a-spanl"><span>移动的服务密码是啥</span> </a> </li> <li> <a target="_blank" href="/faq/phpdmzxfs"><img src="https://img.php.cn/upload/subject/202506/25/2025062517480641676.jpg?x-oss-process=image/resize,m_fill,h_96,w_156" /> </a> <a target="_blank" href="/faq/phpdmzxfs" class="title-a-spanl"><span>PHP代码执行方式</span> </a> </li> </ul> </div> </div> <div class="wzrOne"> <div class="wzroTitle"> <div> 热门话题 </div> <!-- <a href="/article.html" class="wzroTitlea">更多> </a>--> </div> <div class="wzroList"> <ul> <li> <div class="wzczzwzli"> <span class="layui-badge-dots wzrolr"></span> <a target="_blank" href="/faq/1362047.html">免费网站成品1688在线进入 免费成品1688网站地址入口</a> </div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots wzrolr"></span> <a target="_blank" href="/faq/1135224.html">qq邮箱网页版入口官网</a> </div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots wzrolr"></span> <a target="_blank" href="/faq/1136135.html">抖音网页版入口登录链接地址</a> </div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots wzrolr"></span> <a target="_blank" href="/faq/1460554.html">最新免费高清影视网站集合_推荐十个无需下载的在线观看站点</a> </div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots wzrolr"></span> <a target="_blank" href="/faq/1372081.html">豆包AI在线入口地址 豆包AI在线网页入口地址</a> </div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots wzrolr"></span> <a target="_blank" href="/faq/1182566.html">比特币最全历史价格2009-2025明细回顾(2025年最新版)</a> </div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots wzrolr"></span> <a target="_blank" href="/faq/1372084.html">豆包AI网页版在线入口直达</a> </div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots wzrolr"></span> <a target="_blank" href="/faq/1444732.html">必看番剧推荐网站入口 b站必看番剧推荐永久免费观看入口</a> </div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots wzrolr"></span> <a target="_blank" href="/faq/925818.html">币安(Binance)交易所app国内下载教程</a> </div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots wzrolr"></span> <a target="_blank" href="/faq/1372091.html">豆包AI怎么在线提问 豆包AI在线入口</a> </div> </li> </ul> </div> </div> <div class="wzrThree"> <div class="wzrthree-title"> <div>热门教程</div> <a target="_blank" href="https://www.php.cn/k.html">更多> </a> </div> <div class="wzrthreelist"> <div class="wzrthreeTab"> <div class="check tabdiv" data-id="one">相关教程 <div></div></div> <div class="tabdiv" data-id="two">热门推荐<div></div></div> <div class="tabdiv" data-id="three">最新课程<div></div></div> </div> <ul class="one"> </ul> <ul class="two" style="display: none;"> <li> <a target="_blank" href="/course/1656.html" title="JavaScript ES5基础线上课程教学" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/081/6862652adafef801.png" alt="JavaScript ES5基础线上课程教学"/> </a> <div class="wzrthree-right"> <a target="_blank" href="/course/1656.html">JavaScript ES5基础线上课程教学</a> <div class="wzrthreerb"> <div >64937次学习</div> <a class="courseICollection" data-id="1656"><img src="/static/images/images/icon-small-nocollect.png" class="nofollow">收藏</a> </div> </div> </li> <li> <a target="_blank" href="/course/812.html" title="最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/041/620debc3eab3f377.jpg" alt="最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)"/> </a> <div class="wzrthree-right"> <a target="_blank" href="/course/812.html">最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)</a> <div class="wzrthreerb"> <div >1484960次学习</div> <a class="courseICollection" data-id="812"><img src="/static/images/images/icon-small-nocollect.png" class="nofollow">收藏</a> </div> </div> </li> <li> <a target="_blank" href="/course/639.html" title="phpStudy极速入门视频教程" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/068/62611ef88fcec821.jpg" alt="phpStudy极速入门视频教程"/> </a> <div class="wzrthree-right"> <a target="_blank" href="/course/639.html">phpStudy极速入门视频教程</a> <div class="wzrthreerb"> <div >529754次学习</div> <a class="courseICollection" data-id="639"><img src="/static/images/images/icon-small-nocollect.png" class="nofollow">收藏</a> </div> </div> </li> <li> <a target="_blank" href="/course/379.html" title="独孤九贱(4)_PHP视频教程" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/001/5d1c6dfc9eb09885.jpg" alt="独孤九贱(4)_PHP视频教程"/> </a> <div class="wzrthree-right"> <a target="_blank" href="/course/379.html">独孤九贱(4)_PHP视频教程</a> <div class="wzrthreerb"> <div >1249519次学习</div> <a class="courseICollection" data-id="379"><img src="/static/images/images/icon-small-nocollect.png" class="nofollow">收藏</a> </div> </div> </li> <li> <a target="_blank" href="/course/801.html" title="PHP实战天龙八部之仿爱奇艺电影网站" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/001/5d2426f409839992.jpg" alt="PHP实战天龙八部之仿爱奇艺电影网站"/> </a> <div class="wzrthree-right"> <a target="_blank" href="/course/801.html">PHP实战天龙八部之仿爱奇艺电影网站</a> <div class="wzrthreerb"> <div >769630次学习</div> <a class="courseICollection" data-id="801"><img src="/static/images/images/icon-small-nocollect.png" class="nofollow">收藏</a> </div> </div> </li> </ul> <ul class="three" style="display: none;"> <li> <a target="_blank" href="/course/1696.html" title="最新Python教程 从入门到精通" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/081/68c135bb72783194.png" alt="最新Python教程 从入门到精通"/> </a> <div class="wzrthree-right"> <a target="_blank" href="/course/1696.html">最新Python教程 从入门到精通</a> <div class="wzrthreerb"> <div >2726次学习</div> <a class="courseICollection" data-id="1696"><img src="/static/images/images/icon-small-nocollect.png" class="nofollow">收藏</a> </div> </div> </li> <li> <a target="_blank" href="/course/1656.html" title="JavaScript ES5基础线上课程教学" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/081/6862652adafef801.png" alt="JavaScript ES5基础线上课程教学"/> </a> <div class="wzrthree-right"> <a target="_blank" href="/course/1656.html">JavaScript ES5基础线上课程教学</a> <div class="wzrthreerb"> <div >64937次学习</div> <a class="courseICollection" data-id="1656"><img src="/static/images/images/icon-small-nocollect.png" class="nofollow">收藏</a> </div> </div> </li> <li> <a target="_blank" href="/course/1655.html" title="PHP新手语法线上课程教学" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/081/684a8c23d811b293.png" alt="PHP新手语法线上课程教学"/> </a> <div class="wzrthree-right"> <a target="_blank" href="/course/1655.html">PHP新手语法线上课程教学</a> <div class="wzrthreerb"> <div >6428次学习</div> <a class="courseICollection" data-id="1655"><img src="/static/images/images/icon-small-nocollect.png" class="nofollow">收藏</a> </div> </div> </li> <li> <a target="_blank" href="/course/1654.html" title="支付宝沙箱支付(个人也能用的支付)" class="wzrthreelaimg"> <img src="https://img.php.cn/teacher/course/20240819/172406094466c31510e008b.jpg" alt="支付宝沙箱支付(个人也能用的支付)"/> </a> <div class="wzrthree-right"> <a target="_blank" href="/course/1654.html">支付宝沙箱支付(个人也能用的支付)</a> <div class="wzrthreerb"> <div >4508次学习</div> <a class="courseICollection" data-id="1654"><img src="/static/images/images/icon-small-nocollect.png" class="nofollow">收藏</a> </div> </div> </li> <li> <a target="_blank" href="/course/1650.html" title="麻省理工大佬Python课程" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/067/66592dcfeb1b4698.png" alt="麻省理工大佬Python课程"/> </a> <div class="wzrthree-right"> <a target="_blank" href="/course/1650.html">麻省理工大佬Python课程</a> <div class="wzrthreerb"> <div >41271次学习</div> <a class="courseICollection" data-id="1650"><img src="/static/images/images/icon-small-nocollect.png" class="nofollow">收藏</a> </div> </div> </li> </ul> </div> <script> $('.wzrthreeTab>div').click(function(e){ $('.wzrthreeTab>div').removeClass('check') $(this).addClass('check') $('.wzrthreelist>ul').css('display','none') $('.'+e.currentTarget.dataset.id).show() }) </script> </div> <div class="wzrFour"> <div class="wzrfour-title"> <div>最新下载</div> <a href="/xiazai">更多> </a> </div> <script> $(document).ready(function(){ var sjyx_banSwiper = new Swiper(".sjyx_banSwiperwz",{ speed:1000, autoplay:{ delay:3500, disableOnInteraction: false, }, pagination:{ el:'.sjyx_banSwiperwz .swiper-pagination', clickable :false, }, loop:true }) }) </script> <div class="wzrfourList"> <div class="wzrfourlTab"> <div class="check" data-id="onef">网站特效 <div></div></div> <div class="" data-id="twof">网站源码<div></div></div> <div class="" data-id="threef">网站素材<div></div></div> <div class="" data-id="fourf">前端模板<div></div></div> </div> <ul class="onef"> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="jQuery企业留言表单联系代码" href="/xiazai/js/8071">[表单按钮] jQuery企业留言表单联系代码</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="HTML5 MP3音乐盒播放特效" href="/xiazai/js/8070">[播放器特效] HTML5 MP3音乐盒播放特效</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="HTML5炫酷粒子动画导航菜单特效" href="/xiazai/js/8069">[菜单导航] HTML5炫酷粒子动画导航菜单特效</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="jQuery可视化表单拖拽编辑代码" href="/xiazai/js/8068">[表单按钮] jQuery可视化表单拖拽编辑代码</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="VUE.JS仿酷狗音乐播放器代码" href="/xiazai/js/8067">[播放器特效] VUE.JS仿酷狗音乐播放器代码</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="经典html5推箱子小游戏" href="/xiazai/js/8066">[html5特效] 经典html5推箱子小游戏</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="jQuery滚动添加或减少图片特效" href="/xiazai/js/8065">[图片特效] jQuery滚动添加或减少图片特效</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="CSS3个人相册封面悬停放大特效" href="/xiazai/js/8064">[相册特效] CSS3个人相册封面悬停放大特效</a> </div> </li> </ul> <ul class="twof" style="display:none"> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="/xiazai/code/10725" title="南方数据企业网站管理系统11 bulid 080901 全屏修正版" target="_blank">[企业站源码] 南方数据企业网站管理系统11 bulid 080901 全屏修正版</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="/xiazai/code/10724" title="时尚化妆品商城整站 for ECSHOP" target="_blank">[电商源码] 时尚化妆品商城整站 for ECSHOP</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="/xiazai/code/10723" title="奥硕企业网站管理系统3.0.2" target="_blank">[企业站源码] 奥硕企业网站管理系统3.0.2</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="/xiazai/code/10722" title="MCShop微维网上商城系统独立网店系统(非MVC版)" target="_blank">[电商源码] MCShop微维网上商城系统独立网店系统(非MVC版)</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="/xiazai/code/10721" title="企业网站管理系统源码2.0" target="_blank">[企业站源码] 企业网站管理系统源码2.0</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="/xiazai/code/10720" title="Zen Cart" target="_blank">[电商源码] Zen Cart</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="/xiazai/code/10719" title="中小型企业建站程序1.0" target="_blank">[企业站源码] 中小型企业建站程序1.0</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="/xiazai/code/10718" title="qq业务网站源码带支付宝转账功能" target="_blank">[电商源码] qq业务网站源码带支付宝转账功能</a> </div> </li> </ul> <ul class="threef" style="display:none"> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="/xiazai/sucai/3728" target="_blank" title="水彩风手冲咖啡插画矢量素材">[矢量素材] 水彩风手冲咖啡插画矢量素材</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="/xiazai/sucai/3727" target="_blank" title="工作学习空间与办公主题矢量">[矢量素材] 工作学习空间与办公主题矢量</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="/xiazai/sucai/3726" target="_blank" title="万圣节南瓜主题海报矢量模板">[矢量素材] 万圣节南瓜主题海报矢量模板</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="/xiazai/sucai/3725" target="_blank" title="水彩新鲜草本香料插画矢量素材">[矢量素材] 水彩新鲜草本香料插画矢量素材</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="/xiazai/sucai/3724" target="_blank" title="炫酷宇航员矢量插图素材">[矢量素材] 炫酷宇航员矢量插图素材</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="/xiazai/sucai/3723" target="_blank" title="建筑设计蓝图插图矢量素材">[矢量素材] 建筑设计蓝图插图矢量素材</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="/xiazai/sucai/3722" target="_blank" title="古都西安地标合集矢量素材">[矢量素材] 古都西安地标合集矢量素材</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="/xiazai/sucai/3721" target="_blank" title="潦草手绘风格数字合集矢量">[矢量素材] 潦草手绘风格数字合集矢量</a> </div> </li> </ul> <ul class="fourf" style="display:none"> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="/xiazai/code/8590" target="_blank" title="驾照考试驾校HTML5网站模板">[前端模板] 驾照考试驾校HTML5网站模板</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="/xiazai/code/8589" target="_blank" title="驾照培训服务机构宣传网站模板">[前端模板] 驾照培训服务机构宣传网站模板</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="/xiazai/code/8588" target="_blank" title="HTML5房地产公司宣传网站模板">[前端模板] HTML5房地产公司宣传网站模板</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="/xiazai/code/8587" target="_blank" title="新鲜有机肉类宣传网站模板">[前端模板] 新鲜有机肉类宣传网站模板</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="/xiazai/code/8586" target="_blank" title="响应式天气预报宣传网站模板">[前端模板] 响应式天气预报宣传网站模板</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="/xiazai/code/8585" target="_blank" title="房屋建筑维修公司网站CSS模板">[前端模板] 房屋建筑维修公司网站CSS模板</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="/xiazai/code/8584" target="_blank" title="响应式志愿者服务网站模板">[前端模板] 响应式志愿者服务网站模板</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="/xiazai/code/8583" target="_blank" title="创意T恤打印店网站HTML5模板">[前端模板] 创意T恤打印店网站HTML5模板</a> </div> </li> </ul> </div> <script> $('.wzrfourlTab>div').click(function(e){ $('.wzrfourlTab>div').removeClass('check') $(this).addClass('check') $('.wzrfourList>ul').css('display','none') $('.'+e.currentTarget.dataset.id).show() }) </script> </div> </div> </div> </div> <!--主体 end--> <!--底部--> <!--底部 end--> <div class="phpFoot"> <div class="phpFootIn"> <div class="phpFootCont"> <div class="phpFootLeft"> <dl> <dt> <a href="/about/us.html" rel="nofollow" target="_blank" title="关于我们" class="cBlack">关于我们</a> <a href="/about/disclaimer.html" rel="nofollow" target="_blank" title="免责申明" class="cBlack">免责申明</a> <a href="/about/jbzx.html" rel="nofollow" target="_blank" title="举报中心" class="cBlack">举报中心</a> <a href="javascript:;" rel="nofollow" onclick="advice_data(99999999,'意见反馈')" title="意见反馈" class="cBlack">意见反馈</a> <a href="https://www.php.cn/teacher.html" rel="nofollow" target="_blank" title="讲师合作" class="cBlack">讲师合作</a> <a href="https://www.php.cn/blog/detail/20304.html" rel="nofollow" target="_blank" title="广告合作" class="cBlack">广告合作</a> <!--<a href="javascript:;" target="_blank" title="其他合作" class="cBlack">其他合作</a>--> <a href="/new/" target="_blank" title="最新文章列表" class="cBlack">最新更新</a> <a href="https://global.php.cn/" target="_blank" title="English" class="cBlack">English</a> <div class="clear"></div> </dt> <dd class="cont1">php中文网:公益在线php培训,帮助PHP学习者快速成长!</dd> <dd class="cont2"> <span class="ylwTopBox"> <a href="javascript:;" class="cBlack"><b class="icon1"></b>关注服务号</a> <em style="display:none;" class="ylwTopSub"> <p>微信扫码<br/>关注PHP中文网服务号</p> <img src="/static/images/examples/text16.png"/> </em> </span> <span class="ylwTopBox"> <a href="tencent://message/?uin=27220243&Site=www.php.cn&Menu=yes" target="_blank" class="cBlack"><b class="icon2"></b>技术交流群</a> <em style="display:none;" class="ylwTopSub"> <p>QQ扫码<br/>加入技术交流群</p> <img src="/static/images/examples/text18.png"/> </em> </span> <div class="clear"></div> </dd> </dl> </div> <div class="phpFootRight"> <div class="phpFootMsg"> <span><img src="/static/images/examples/text17.png"/></span> <dl> <dt>PHP中文网订阅号</dt> <dd>每天精选资源文章推送</dd> </dl> </div> <div class="phpFootMsg"> <span><img src="/static/images/examples/text14.png"/></span> <dl> <dt>PHP中文网APP</dt> <dd>随时随地碎片化学习</dd> </dl> </div> </div> </div> </div> <div class="phpFootCode"> <div class="phpFootCodeIn"><p>Copyright 2014-2025 <a href="https://www.php.cn/" target="_blank">https://www.php.cn/</a> All Rights Reserved | php.cn | <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">湘ICP备2023035733号</a></p><a href="http://www.beian.gov.cn/portal/index.do" rel="nofollow" target="_blank"><b></b></a></div> </div> </div> <input type="hidden" id="verifycode" value="/captcha.html"> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?c0e685c8743351838d2a7db1c49abd56"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <script>layui.use(['element', 'carousel'], function () {var element = layui.element;$ = layui.jquery;var carousel = layui.carousel;carousel.render({elem: '#test1', width: '100%', height: '330px', arrow: 'always'});$.getScript('/static/js/jquery.lazyload.min.js', function () {$("img").lazyload({placeholder: "/static/images/load.jpg", effect: "fadeIn", threshold: 200, skip_invisible: false});});});</script> <span class="layui-hide"><script type="text/javascript" src="https://s4.cnzz.com/z_stat.php?id=1280886301&web_id=1280886301"></script></span> <!-- <div class="phpFudong"> <div class="phpFudongIn"> <div class="phpFudongImg"></div> <div class="phpFudongXue">登录PHP中文网,和优秀的人一起学习!</div> <div class="phpFudongQuan">全站<span>2000+</span>教程免费学</div> <div class="phpFudongCode"><a href="javascript:;" id="login" title="微信扫码登录">微信扫码登录</a></div> <div class="phpGuanbi" onclick="$('.phpFudong').hide();"></div> <div class="clear"></div> </div> </div> --><!--侧导航--> <style> .layui-fixbar{display: none;} </style> <div class="phpSdhBox" style="height:240px !important;"> <li> <div class="phpSdhIn"> <div class="phpSdhTitle"> <a href="/k24.html" target="_blank" class="hover" title="PHP学习"> <b class="icon1"></b> <p>PHP学习</p> </a> </div> </div> </li> <li> <div class="phpSdhIn"> <div class="phpSdhTitle"> <a href="https://www.php.cn/blog/detail/1047189.html" target="_blank"> <b class="icon2"></b> <p>技术支持</p> </a> </div> </div> </li> <li> <div class="phpSdhIn"> <div class="phpSdhTitle"> <a href="#"> <b class="icon6"></b> <p>返回顶部</p> </a> </div> </div> </li> </div> <!--侧导航 end--> <script src="/static/layui/layui.all.js"></script> <script src="/static/ueditor/ueditor.config.js"></script> <script src="/static/ueditor/ueditor.user.all.js"></script> <script src="/static/ueditor/third-party/SyntaxHighlighter/shCore.js"></script> <script type="text/javascript" src="/static/video/video.js?1.7" charset="UTF-8"></script> <link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css?2' type='text/css' media='all'/> <script type='text/javascript' src='/static/js/viewer.min.js?1'></script> <script type='text/javascript' src='/static/js/jquery-viewer.min.js'></script> <script type="text/javascript" src="/static/js/global.min.js?5.5.33"></script> <script>$('.isAct-attr').viewer();</script> </body> </html>