<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="/wp-content/plugins/rss-beauty/pink.xsl"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>nuxt.js Archives - obaby 𝐢‍𝐧⃝ void</title>
	<atom:link href="https://zhongxiaojie.com/tag/nuxt-js/feed/" rel="self" type="application/rss+xml" />
	<link>https://zhongxiaojie.cn/tag/nuxt-js/</link>
	<description>程序媛 / 独立开发者 / 智商不稳定的女神经</description>
	<lastBuildDate>Mon, 27 Apr 2026 02:03:03 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://zhongxiaojie.com/wp-content/uploads/2026/01/uugai.com-166111691272754-100x100.png</url>
	<title>nuxt.js Archives - obaby 𝐢‍𝐧⃝ void</title>
	<link>https://zhongxiaojie.cn/tag/nuxt-js/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>浅谈前后端分离系统的SEO优化</title>
		<link>https://zhongxiaojie.com/2026/04/1156/</link>
					<comments>https://zhongxiaojie.com/2026/04/1156/#respond</comments>
		
		<dc:creator><![CDATA[obaby]]></dc:creator>
		<pubDate>Mon, 27 Apr 2026 02:03:03 +0000</pubDate>
				<category><![CDATA[程序媛]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[nuxt]]></category>
		<category><![CDATA[nuxt.js]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[vue]]></category>
		<category><![CDATA[前后端分离]]></category>
		<guid isPermaLink="false">https://zhongxiaojie.cn/?p=1156</guid>

					<description><![CDATA[开发一个系统，不管是从头开始，还是在已有系统上二次开发，从来都不是一蹴而就的事情。在上线以前总觉得已经做够了足 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/30A1744-scaled.jpg" data-lbwps-width="1707" data-lbwps-height="2560" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/30A1744-scaled.jpg" data-lightbox="gal[1156]"><img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-1161" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/30A1744-scaled.jpg" alt="" width="1707" height="2560" srcset="https://zhongxiaojie.com/wp-content/uploads/2026/04/30A1744-scaled.jpg?v=1777255370 1707w, https://zhongxiaojie.com/wp-content/uploads/2026/04/30A1744-200x300.jpg?v=1777255370 200w, https://zhongxiaojie.com/wp-content/uploads/2026/04/30A1744-683x1024.jpg?v=1777255370 683w, https://zhongxiaojie.com/wp-content/uploads/2026/04/30A1744-100x150.jpg?v=1777255370 100w, https://zhongxiaojie.com/wp-content/uploads/2026/04/30A1744-768x1152.jpg?v=1777255370 768w, https://zhongxiaojie.com/wp-content/uploads/2026/04/30A1744-1024x1536.jpg?v=1777255370 1024w, https://zhongxiaojie.com/wp-content/uploads/2026/04/30A1744-1365x2048.jpg?v=1777255370 1365w, https://zhongxiaojie.com/wp-content/uploads/2026/04/30A1744-665x998.jpg?v=1777255370 665w, https://zhongxiaojie.com/wp-content/uploads/2026/04/30A1744-173x260.jpg?v=1777255370 173w" sizes="(max-width: 1707px) 100vw, 1707px" /></a></p>
<p>开发一个系统，不管是从头开始，还是在已有系统上二次开发，从来都不是一蹴而就的事情。在上线以前总觉得已经做够了足够的测试，但是在上线之后还是会出现各种各样的问题。</p>
<p><span id="more-1156"></span></p>
<p>有的问题，如果是新系统完全可以避免，正是由于是在已有系统上开发的为了兼容wp才会引入一系列的问题，这类问题主要是wp原生的一些机制兼容问题导致的包括但不限于：</p>
<p>1.wp固定连接的兼容</p>
<p>2.shortcode的解析处理</p>
<p>3.wp资源文件与新系统资源文件的路径兼容处理</p>
<p>4.wp启用插件的功能实现，邮件通知、micro-post、邮件发送、邮件模板等等</p>
<p>5.其他的未知问题</p>
<p>也有一部分是新系统天生的缺陷：seo不友好，搜索引擎爬虫无法获取网页内容，毕竟robot不会执行js，这个是前后端分离系统的必然缺陷。</p>
<pre class="EnlighterJSRAW" data-enlighter-language="html">&lt;!doctype html&gt;
&lt;html lang="zh-CN"&gt;
  &lt;head&gt;
    &lt;meta charset="UTF-8" /&gt;
    &lt;link
      rel="icon"
      href="https://zhongxiaojie.cn/wp-content/uploads/2026/01/uugai.com-166111691272754-100x100.png"
      sizes="32x32"
    /&gt;
    &lt;link
      rel="icon"
      href="https://zhongxiaojie.cn/wp-content/uploads/2026/01/uugai.com-166111691272754-200x200.png"
      sizes="192x192"
    /&gt;
    &lt;link
      rel="apple-touch-icon"
      href="https://zhongxiaojie.cn/wp-content/uploads/2026/01/uugai.com-166111691272754-200x200.png"
    /&gt;
    &lt;meta
      name="msapplication-TileImage"
      content="https://zhongxiaojie.cn/wp-content/uploads/2026/01/uugai.com-166111691272754-300x300.png"
    /&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0" /&gt;
    &lt;meta
      name="description"
      content="爱好广泛的女王 独立APP开发者 AI修理师 爬虫砖家 逆向工程师 人工智能 全栈工程师"
    /&gt;
    &lt;meta
      name="keywords"
      content="人工智能,机器学习,ml,逆向分析,信息安全,物联网,ida,uniapp,python,爬虫,妹子图,秀人集,java,vue"
    /&gt;
    &lt;meta
      name="theme-color"
      content="#ff4f87"
    /&gt;
    &lt;link
      rel="manifest"
      href="/manifest.json"
    /&gt;
    &lt;link
      rel="stylesheet"
      href="/vendor/enlighterjs.min.css"
    /&gt;
    &lt;link
      rel="stylesheet"
      href="/vendor/simple-microblogging.css"
    /&gt;
    &lt;title&gt;obaby 𝐢&#x200d;𝐧⃝ void - 程序媛 / 独立开发者 / 智商不稳定的女神经&lt;/title&gt;
    &lt;script type="module" crossorigin src="/assets/index-DFHpxK1A.js"&gt;&lt;/script&gt;
    &lt;link rel="stylesheet" crossorigin href="/assets/index-CKljzL1r.css"&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;div id="app"&gt;&lt;/div&gt;
    &lt;script
      defer
      src="/vendor/enlighterjs.min.js"
    &gt;&lt;/script&gt;
    &lt;script defer src="/vendor/obaby.js"&gt;&lt;/script&gt;

  &lt;/body&gt;
&lt;/html&gt;
</pre>
<p>&nbsp;</p>
<p>当然有人会比较在意这个东西，不是说这个东西不对。可能是自己没那么在乎吧，之前就曾经收到过数次关于seo友链不显示的问题，上次是搞页面静态化。</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260427-092806@2x-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="621" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260427-092806@2x-scaled.jpg" data-lightbox="gal[1156]"><img decoding="async" class="alignnone size-full wp-image-1158" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260427-092806@2x-scaled.jpg" alt="" width="2560" height="621" srcset="https://zhongxiaojie.com/wp-content/uploads/2026/04/Jietu20260427-092806@2x-scaled.jpg?v=1777253334 2560w, https://zhongxiaojie.com/wp-content/uploads/2026/04/Jietu20260427-092806@2x-300x73.jpg?v=1777253334 300w, https://zhongxiaojie.com/wp-content/uploads/2026/04/Jietu20260427-092806@2x-1024x248.jpg?v=1777253334 1024w, https://zhongxiaojie.com/wp-content/uploads/2026/04/Jietu20260427-092806@2x-150x36.jpg?v=1777253334 150w, https://zhongxiaojie.com/wp-content/uploads/2026/04/Jietu20260427-092806@2x-768x186.jpg?v=1777253334 768w, https://zhongxiaojie.com/wp-content/uploads/2026/04/Jietu20260427-092806@2x-1536x373.jpg?v=1777253334 1536w, https://zhongxiaojie.com/wp-content/uploads/2026/04/Jietu20260427-092806@2x-2048x497.jpg?v=1777253334 2048w, https://zhongxiaojie.com/wp-content/uploads/2026/04/Jietu20260427-092806@2x-665x161.jpg?v=1777253334 665w, https://zhongxiaojie.com/wp-content/uploads/2026/04/Jietu20260427-092806@2x-1072x260.jpg?v=1777253334 1072w" sizes="(max-width: 2560px) 100vw, 2560px" /></a></p>
<p>其实，在我的博客添加的友链，也并不是全部都不显示，毕竟还有其他的域名，<a href="https://zhongxiaojie.com" target="_blank" rel="noopener">zhongxiaojie.com</a> 以及 <a href="http://oba.by" target="_blank" rel="noopener">oba.by</a>等还是会显示完整的友链信息，这两个域名并没有切换到新的前后端分离的系统。所以，我博客的友链，相当于数个站都给友链做了多次链接，我不知道这个东西对于seo有没有作用，至于是有好处，还是有坏处，我并不清除，我自己并不是那么关注所谓的seo。如果觉得这样反而会出问题的，欢迎反馈，我会及时删除相关链接哈。</p>
<p>当然，这个东西有办法解决吗？答案自然是有，至于解决方法，那就是继续回归服务器渲染。</p>
<p>这解决方案真的是简单粗暴啊，合着这折腾来折腾去，又要弄回服务器渲染，这辛辛苦苦四十年，一夜回到解放前？</p>
<p>采用这种简单粗暴的方法来解决seo问题，显示不是本仙女的作风。既然是针对搜索引擎的，那就直接对搜索引擎做单独的处理就完了。检测ua，如果是收缩引起的ua返回服务器渲染之后的内容，如果是正常浏览（搜索引擎爬虫意外的ua）返回前后端分离的内容。</p>
<p>要实现服务器渲染，基于vue的可以参考nuxt.js(百度百科):</p>
<blockquote>
<div class="para_efdCF summary_TvRxu MARK_MODULE" data-tag="paragraph" data-uuid="i5gzm8kpld" data-idx=""><span class="text_H46ki J-lemma-content-lemma-text" data-text="true">Nuxt.js是由NuxtLabs团队于2016年10月推出的基于</span><span class="text_H46ki J-lemma-content-lemma-text" data-text="true"><a class="innerLink_RUkn8" href="https://baike.baidu.com/item/Vue.js/19884851?fromModule=lemma_inlink" target="_blank" rel="noopener" data-from-module="summary">Vue.js</a></span><span class="text_H46ki J-lemma-content-lemma-text" data-text="true">的开源Web框架，采用MIT License授权。该框架灵感来源于</span><span class="text_H46ki J-lemma-content-lemma-text" data-text="true"><a class="innerLink_RUkn8" href="https://baike.baidu.com/item/Next.js/64867074?fromModule=lemma_inlink" target="_blank" rel="noopener" data-from-module="summary">Next.js</a></span><span class="text_H46ki J-lemma-content-lemma-text" data-text="true">，Nuxt采用了约定俗成的规范以及一种明确的目录结构，以实现对重复性任务的自动化处理，并使开发人员能够专注于推进新功能的开发。</span><span class="supWrap_Ufaoj J-supWrap J-lemma-content-lemma-sup-item" data-flag="summary"><sup data-tag="ref"> [2]<em id="sup-2"></em></sup></span><span class="supWrap_Ufaoj J-supWrap J-lemma-content-lemma-sup-item" data-flag="summary"><sup data-tag="ref"> [5]<em id="sup-5"></em></sup></span><span class="supWrap_Ufaoj J-supWrap J-lemma-content-lemma-sup-item" data-flag="summary"><sup data-tag="ref"> [8]<em id="sup-8"></em></sup></span><span class="text_H46ki J-lemma-content-lemma-text" data-text="true">。</span></div>
<div class="para_efdCF summary_TvRxu MARK_MODULE" data-tag="paragraph" data-uuid="i5gzm8ltlr" data-idx=""><span class="text_H46ki J-lemma-content-lemma-text" data-text="true">Nuxt默认内置</span><span class="text_H46ki J-lemma-content-lemma-text" data-text="true"><a class="innerLink_RUkn8" href="https://baike.baidu.com/item/%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%AF%E6%B8%B2%E6%9F%93/61701022?fromModule=lemma_inlink" target="_blank" rel="noopener" data-from-module="summary">服务器端渲染</a></span><span class="text_H46ki J-lemma-content-lemma-text" data-text="true">（SSR）功能、支持静态站点生成（SSG）和</span><span class="text_H46ki J-lemma-content-lemma-text" data-text="true"><a class="innerLink_RUkn8" href="https://baike.baidu.com/item/%E5%8D%95%E9%A1%B5%E9%9D%A2%E5%BA%94%E7%94%A8/18753779?fromModule=lemma_inlink" target="_blank" rel="noopener" data-from-module="summary">单页面应用</a></span><span class="text_H46ki J-lemma-content-lemma-text" data-text="true">（SPA）三种部署模式，可通过&#8221;nuxt generate&#8221;命令生成预渲染HTML文件实现静态化部署</span><span class="supWrap_Ufaoj J-supWrap J-lemma-content-lemma-sup-item" data-flag="summary"><sup data-tag="ref"> [5]<em id="sup-5"></em></sup></span><span class="supWrap_Ufaoj J-supWrap J-lemma-content-lemma-sup-item" data-flag="summary"><sup data-tag="ref"> [7]<em id="sup-7"></em></sup></span><span class="text_H46ki J-lemma-content-lemma-text" data-text="true">。采用模块化架构提供50多个扩展模块，支持TypeScript类型安全、推送和现代化开发工具链</span><span class="supWrap_Ufaoj J-supWrap J-lemma-content-lemma-sup-item" data-flag="summary"><sup data-tag="ref"> [4]<em id="sup-4"></em></sup></span><span class="supWrap_Ufaoj J-supWrap J-lemma-content-lemma-sup-item" data-flag="summary"><sup data-tag="ref"> [6]<em id="sup-6"></em></sup></span><span class="text_H46ki J-lemma-content-lemma-text" data-text="true">。</span></div>
</blockquote>
<p>接下来也就简单了，创建nuxt项目，实现与frontend同样的页面路由和相关的页面文件布局。接口可以直接复用当前的接口，</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260427-094819@2x-scaled.jpg" data-lbwps-width="2560" data-lbwps-height="1613" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260427-094819@2x-scaled.jpg" data-lightbox="gal[1156]"><img decoding="async" class="alignnone size-full wp-image-1159" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Jietu20260427-094819@2x-scaled.jpg" alt="" width="2560" height="1613" srcset="https://zhongxiaojie.com/wp-content/uploads/2026/04/Jietu20260427-094819@2x-scaled.jpg?v=1777254518 2560w, https://zhongxiaojie.com/wp-content/uploads/2026/04/Jietu20260427-094819@2x-300x189.jpg?v=1777254518 300w, https://zhongxiaojie.com/wp-content/uploads/2026/04/Jietu20260427-094819@2x-1024x645.jpg?v=1777254518 1024w, https://zhongxiaojie.com/wp-content/uploads/2026/04/Jietu20260427-094819@2x-150x95.jpg?v=1777254518 150w, https://zhongxiaojie.com/wp-content/uploads/2026/04/Jietu20260427-094819@2x-768x484.jpg?v=1777254518 768w, https://zhongxiaojie.com/wp-content/uploads/2026/04/Jietu20260427-094819@2x-1536x968.jpg?v=1777254518 1536w, https://zhongxiaojie.com/wp-content/uploads/2026/04/Jietu20260427-094819@2x-2048x1290.jpg?v=1777254518 2048w, https://zhongxiaojie.com/wp-content/uploads/2026/04/Jietu20260427-094819@2x-665x419.jpg?v=1777254518 665w, https://zhongxiaojie.com/wp-content/uploads/2026/04/Jietu20260427-094819@2x-413x260.jpg?v=1777254518 413w" sizes="(max-width: 2560px) 100vw, 2560px" /></a></p>
<p>配置openresty的处理逻辑：</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic"># -----------------------------------------------------------------------------
# Dynamic Rendering（SEO）：爬虫 UA → Nuxt SSR；普通用户 → 现有 SPA
# - Nuxt SSR 服务建议监听 127.0.0.1:3000（可按需调整）
# - ?__ssr=1 可强制走 SSR（方便自测/排障）
# - 仅对“页面路由”生效，不影响 /assets、/vendor、/bp-api、WP 后台等
# -----------------------------------------------------------------------------
set $bp_force_ssr 0;
if ($arg___ssr = "1") {
    set $bp_force_ssr 1;
}

set $bp_is_bot 0;
if ($http_user_agent ~* "(googlebot|bingbot|baiduspider|yandexbot|duckduckbot|slurp|sogou|360spider|bytespider|petalbot|facebookexternalhit|twitterbot|rogerbot|ahrefsbot|semrushbot|mj12bot)") {
    set $bp_is_bot 1;
}

location @nuxt_ssr {
    proxy_pass http://127.0.0.1:3000;
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Uri $request_uri;
}

# 418 跳转技巧：在页面路由里 return 418 → error_page 转到 @nuxt_ssr
error_page 418 = @nuxt_ssr;</pre>
<p>启动之后就可以查看服务器渲染的页面了：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-15.png" data-lbwps-width="2151" data-lbwps-height="2081" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-15.png" data-lightbox="gal[1156]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1155" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-15.png" alt="" width="2151" height="2081" srcset="https://zhongxiaojie.com/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-15.png?v=1777209116 2151w, https://zhongxiaojie.com/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-15-300x290.png?v=1777209116 300w, https://zhongxiaojie.com/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-15-1024x991.png?v=1777209116 1024w, https://zhongxiaojie.com/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-15-150x145.png?v=1777209116 150w, https://zhongxiaojie.com/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-15-768x743.png?v=1777209116 768w, https://zhongxiaojie.com/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-15-1536x1486.png?v=1777209116 1536w, https://zhongxiaojie.com/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-15-2048x1981.png?v=1777209116 2048w, https://zhongxiaojie.com/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-15-665x643.png?v=1777209116 665w, https://zhongxiaojie.com/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-15-269x260.png?v=1777209116 269w" sizes="auto, (max-width: 2151px) 100vw, 2151px" /></a> <a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-41.png" data-lbwps-width="2166" data-lbwps-height="2088" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-41.png" data-lightbox="gal[1156]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1154" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-41.png" alt="" width="2166" height="2088" srcset="https://zhongxiaojie.com/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-41.png?v=1777209101 2166w, https://zhongxiaojie.com/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-41-300x289.png?v=1777209101 300w, https://zhongxiaojie.com/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-41-1024x987.png?v=1777209101 1024w, https://zhongxiaojie.com/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-41-150x145.png?v=1777209101 150w, https://zhongxiaojie.com/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-41-768x740.png?v=1777209101 768w, https://zhongxiaojie.com/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-41-1536x1481.png?v=1777209101 1536w, https://zhongxiaojie.com/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-41-2048x1974.png?v=1777209101 2048w, https://zhongxiaojie.com/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-41-665x641.png?v=1777209101 665w, https://zhongxiaojie.com/wp-content/uploads/2026/04/BaiduShurufa_2026-4-26_21-10-41-270x260.png?v=1777209101 270w" sizes="auto, (max-width: 2166px) 100vw, 2166px" /></a></p>
<p>当然，这个实现方法的缺点就是得完全复刻frontend的相关路由和页面，优点就是不用关注原来的系统实现逻辑，哪怕爬虫seo系统出问题也不会影响现有的系统运行。</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://zhongxiaojie.com/2026/04/1156/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
