<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>穿云博客</title><link>https://www.transyun.com/</link><description>Transcending Clouds, Powering Tomorrow</description><item><title>百度SEO搜索引擎如何进行关键词优化？</title><link>https://www.transyun.com/tool/136.html</link><description>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://pic.transyun.com//2024/05/202405028655_4632.jpeg&quot; title=&quot;downjmhgjhg.jpeg&quot; alt=&quot;downjmhgjhg.jpeg&quot; width=&quot;473&quot; height=&quot;246&quot; style=&quot;width: 473px; height: 246px;&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;百度是全球第五大搜索引擎，以近70%的渗透率主导着中国市场。由于谷歌在中国的搜索量仅占4%，因此优化您在百度上的形象对于在世界上人口最多的国家/地区的知名度至关重要。百度的成功在于它能够解析和解释中文文本，使其对中国用户更有效。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;百度拥有世界上最广泛的中文网络索引，通过仅提供简体中文的用户界面完全迎合中国客户的需求。非中文网站很少被编入索引或显示在搜索结果中。相信百度能够帮助您扩大在中国的在线业务。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;《百度SEO搜索引擎》对于关键词优化提出了以下建议和策略：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;1. 关键词研究：首先需要对目标市场进行深入的关键词研究。了解目标受众使用什么样的关键词来搜索你的产品或服务。使用百度的关键词规划工具，比如百度指数，帮助识别和选择最有价值的关键词。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;2. 关键词布局：在网站的标题、描述、头部、正文及URL等位置合理布局关键词。确保这些元素以自然、无干扰的方式包含目标关键词，以便于百度蜘蛛识别。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;3. 标题标签（Title Tag）：确保每个页面的标题标签中包含主要关键词。标题要简明扼要，能够准确地描述页面内容。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;4. 描述标签（Meta Description）：虽然描述标签本身对排名影响不大，但仍然应该在其中包含关键词。这样可以提高用户点击率，因为用户在搜索结果中看到的描述常常包含他们搜索的关键词。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;5. 内容相关性：创建与目标关键词密切相关的高质量内容。内容要确保人们愿意阅读，同时其中自然融入关键词。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;6. 关键词密度：要在避免关键词堆砌的前提下，合理控制关键词出现的频率。通常推荐的关键词密度大约为2%到5%之间。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;7. 长尾关键词：不要忽视长尾关键词的力量。长尾关键词可以帮助捕获更具体、可能转化率更高的搜索流量。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;8. 竞争分析：研究竞争对手的关键词策略，了解业内最佳实践，并根据这些信息调整自己的关键词策略。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;9. 持续优化：&lt;a href=&quot;https://www.transyun.com/tags-13.html&quot; target=&quot;_blank&quot;&gt;SEO&lt;/a&gt;不是一次性工作。定期监测关键词表现，并根据分析结果调整优化策略。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;建议将这些策略与其他SEO元素配合使用，比如高质量内容创作、合理的内部链接结构，以及良好的网站用户体验，共同提高网站在&lt;a class=&quot;lytk_tag&quot;&gt;百度搜索&lt;/a&gt;结果中的排名。&lt;/span&gt;&lt;/p&gt;</description><pubDate>Thu, 02 May 2024 11:18:08 +0800</pubDate></item><item><title>人工智能市场估计到 2030 年将增长到 1 万亿美元</title><link>https://www.transyun.com/focus/135.html</link><description>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://pic.transyun.com//2024/05/202405018900_9916.webp&quot; title=&quot;Default_AI_Growth.webp&quot; alt=&quot;Default_AI_Growth.webp&quot; width=&quot;598&quot; height=&quot;336&quot; style=&quot;width: 598px; height: 336px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp; &amp;nbsp; 在技术进步、采用率提高以及各行业对人工智能潜在优势的广泛认可的推动下，人工智能 (AI) 市场正在经历前所未有的爆炸性增长时期。根据分析，在人工智能市场的当前十年中，人工智能行业的市值可能达到1.3万亿美元。这得益于该行业取得的显着进步以及从 2022 年底开始见证的采用，这确实证明了这个数字时代格局的真正转变。目前，到 2030 年，该行业的复合年增长率 （CAGR） 为 36.8%，目前估值略高于 1500 亿美元。&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;wp-block-heading&quot; style=&quot;box-sizing: border-box; margin-block: 0.5rem 1rem; font-family: Poppins, sans-serif; line-height: 1.3em; color: rgb(35, 39, 46); font-size: 32px; letter-spacing: 0.25px; word-spacing: 0.15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;font-size: 24px;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: 微软雅黑, &amp;quot;Microsoft YaHei&amp;quot;;&quot;&gt;推动增长的因素&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 这种增长的本质是多方面的，从&lt;a href=&quot;https://www.transyun.com/tags-62.html&quot; target=&quot;_blank&quot;&gt;人工智能&lt;/a&gt;领域的各个领域汲取力量。由于算法、机器学习技术的逐步变化和自然语言处理的发展，这些改进中的大多数都是可能的。所有这些都是通过技术创新实现的，这些创新使得能够构建独立的人工智能系统，更重要的是，那些高度可靠的系统。因此，在这方面，行业最近对这些系统的关注表明，它们的应用和效用领域可能是多方面的。&lt;/span&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;另一方面，风险投资公司也被包括在内，通过大量资本流入，人们对人工智能初创企业的兴趣日益浓厚。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;全球最大的科技公司的高调合作伙伴关系进一步补充了这一趋势，这清楚地表明人工智能将继续存在，并伴随着数字化转型。他说，有必要使用生成式人工智能系统，特别是OpenAI的ChatGPT，他坚持认为这在激发这个行业的复兴方面很有价值。此次发布的涟漪效应全面蔓延，许多，甚至像谷歌和 Meta 这样的大型科技巨头，都在迅速部署他们的人工智能解决方案，以引领市场。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;由于大型语言模型 （LLM） 在提高生产力和效率方面发挥着关键作用，因此此类 AI 技术越来越受到公司和个人用户的广泛关注。然而，在最近大量可访问数据的推动下，用户在技术创新方面还有一个非常有前途的前景。大量的信息与人工智能系统有关，人工智能系统可以以最大的效率学习、分析和做出准确的预测。&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;wp-block-heading&quot; style=&quot;box-sizing: border-box; margin-block: 0.5rem 1rem; font-family: Poppins, sans-serif; line-height: 1.3em; color: rgb(35, 39, 46); font-size: 32px; letter-spacing: 0.25px; word-spacing: 0.15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 24px;&quot;&gt;不断扩大的视野和新的挑战&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;该报告进一步阐明了人工智能在金融、健康、教育、安全和制造业等领域的广泛用例。多元化预计将成为其迈向万亿美元行业的关键。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;但这条路，却是百死万艉。如今，知识产权纠纷已成为人们最关心的问题。如果人工智能公司在没有适当授权的情况下使用，他们的作品就会与创作者发生冲突。此外，超级智能和政府监管的潜在主导地位，以及与失业、错误信息和恶意使用人工智能进行深度伪造相关的其他风险将悬而未决。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;因此，这意味着这些问题需要平衡，以结合企业区块链等技术，以从根本上确保数据质量、所有权和安全性，以维持人工智能的道德增长。&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;wp-block-heading&quot; style=&quot;box-sizing: border-box; margin-block: 0.5rem 1rem; font-family: Poppins, sans-serif; line-height: 1.3em; color: rgb(35, 39, 46); font-size: 32px; letter-spacing: 0.25px; word-spacing: 0.15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 24px;&quot;&gt;驾驭未来&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;人工智能行业正处于一个明确定义的轨迹的边缘，以定义整个行业，甚至是数字交互的结构。未来的旅程虽然充满希望，但需要有意识地努力减轻新出现的风险。调整企业区块链等解决方案以提高数据完整性和安全性可能是引导行业走向创新与道德标准和法律框架平衡的未来的关键。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp; &amp;nbsp; 从某种意义上说，人工智能行业崛起的故事是一个潜力巨大的故事，但对负责任的创新有一定的抑制作用。&lt;/span&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;当他们驾驭这些水域时，重点将逐渐转向确保实现人工智能的红利，并为技术以尽可能少的摩擦为人类服务的未来奠定基础。通过适当的策略和预防措施，人工智能行业将在 2030 年之前实现 1 万亿美元的市值，这不仅是合理的，而且是肯定的。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a class=&quot;lytk_tag&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;不仅仅是一个技术领域，而且正在成为全球经济和日常生活的变革因素。&lt;/span&gt;&lt;/p&gt;</description><pubDate>Wed, 01 May 2024 17:35:33 +0800</pubDate></item><item><title>Laravel8基于LaravelS如何实现弹幕功能</title><link>https://www.transyun.com/tool/134.html</link><description>&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://pic.transyun.com//2024/05/202405012464_8582.jpg&quot; title=&quot;3006eb7b-2e84a8dbf8f.jpg&quot; alt=&quot;3006eb7b-2e84a8dbf8f.jpg&quot; width=&quot;479&quot; height=&quot;234&quot; style=&quot;width: 479px; height: 234px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;在当今的在线交互体验中，实时弹幕功能非常受欢迎，尤其是在视频流媒体和直播平台上。在这篇文章中，我们将探讨如何在 Laravel 8 应用程序中，借助 LaravelS 实现实时弹幕功能。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;LaravelS 是一个为 Laravel 框架量身定做的库，它基于 Swoole，后者是 PHP 的一个异步、并行和高性能网络通信引擎。LaravelS 能够帮助我们更方便地实现基于 WebSocket 的实时通信功能。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;前提条件&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;在开始之前，请确保你的开发环境满足以下条件：&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;- PHP &amp;gt;= 7.3&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;- Composer&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;- Laravel 8&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;- Swoole PHP 扩展&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;第 1 步：安装 Laravel 8&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;首先，你需要创建一个新的 Laravel 8 应用，如果你已经有了，可以跳过这一步。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;使用 Composer 创建新的项目：&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;composer&amp;nbsp;create-project&amp;nbsp;--prefer-dist&amp;nbsp;laravel/laravel&amp;nbsp;laravel-danmaku&amp;nbsp;8.*&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;第 2 步：安装 LaravelS&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;进入你的 Laravel 项目目录，然后使用 Composer 安装 LaravelS：&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;composer&amp;nbsp;require&amp;nbsp;hhxsv5/laravel-s&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;安装完成后，发布 LaravelS 的配置文件：&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;php&amp;nbsp;artisan&amp;nbsp;laravels&amp;nbsp;publish&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;这会在项目的 `config` 目录下生成一个名为 `laravels.php` 的配置文件。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;第 3 步：配置 LaravelS&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;打开 `config/laravels.php` ，进行必要的配置。例如，你可能需要配置 `listen_ip`、`listen_port` 以及一些 `swoole` 特定的设置：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-php&quot;&gt;&amp;#39;listen_ip&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;gt;&amp;nbsp;&amp;#39;127.0.0.1&amp;#39;,
&amp;#39;listen_port&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;gt;&amp;nbsp;5200,
&amp;#39;socket_type&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;gt;&amp;nbsp;SWOOLE_SOCK_TCP,
&amp;#39;swoole&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;gt;&amp;nbsp;[
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;daemonize&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;gt;&amp;nbsp;env(&amp;#39;LARAVELS_DAEMONIZE&amp;#39;,&amp;nbsp;false),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;其他&amp;nbsp;Swoole&amp;nbsp;相关配置...
],&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;第 4 步：创建弹幕事件和监听器&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;在 Laravel 中，你可以使用事件系统来管理实时数据的广播。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;首先，创建新的弹幕事件：&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;php&amp;nbsp;artisan&amp;nbsp;make:event&amp;nbsp;DanmakuEvent&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;编辑事件类 `app/Events/DanmakuEvent.php`：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-php&quot;&gt;&amp;lt;?php
namespace&amp;nbsp;App\Events;
use&amp;nbsp;Illuminate\Foundation\Events\Dispatchable;
use&amp;nbsp;Illuminate\Queue\SerializesModels;
class&amp;nbsp;DanmakuEvent
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;use&amp;nbsp;Dispatchable,&amp;nbsp;SerializesModels;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;$data;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;function&amp;nbsp;__construct($data)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$this-&amp;gt;data&amp;nbsp;=&amp;nbsp;$data;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;接着，创建弹幕事件的监听器：&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;php&amp;nbsp;artisan&amp;nbsp;make:listener&amp;nbsp;DanmakuListener&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;编辑监听器类 `app/Listeners/DanmakuListener.php`：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-php&quot;&gt;&amp;lt;?php
namespace&amp;nbsp;App\Listeners;
use&amp;nbsp;App\Events\DanmakuEvent;
use&amp;nbsp;Hhxsv5\LaravelS\Swoole\Task\Event;
class&amp;nbsp;DanmakuListener
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;function&amp;nbsp;handle(DanmakuEvent&amp;nbsp;$event)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;广播数据到&amp;nbsp;WebSocket&amp;nbsp;客户端
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$websocket&amp;nbsp;=&amp;nbsp;app(&amp;#39;swoole&amp;#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$websocket-&amp;gt;push($event-&amp;gt;data);&amp;nbsp;//&amp;nbsp;假设&amp;nbsp;$event-&amp;gt;data&amp;nbsp;包含了客户端需要的信息
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;在 `app/Providers/EventServiceProvider.php` 中注册事件监听器：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-php&quot;&gt;&amp;lt;?php
protected&amp;nbsp;$listen&amp;nbsp;=&amp;nbsp;[
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;\App\Events\DanmakuEvent::class&amp;nbsp;=&amp;gt;&amp;nbsp;[
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;\App\Listeners\DanmakuListener::class,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;],
];&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;第 5 步：WebSocket 路由和控制器&lt;/span&gt;&lt;/strong&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;在 Laravel 项目的 `routes/web.php` 文件中，添加 WebSocket 导航和路由：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-php&quot;&gt;&amp;lt;?php
use&amp;nbsp;App\Http\Controllers\DanmakuController;
Route::get(&amp;#39;/danmaku&amp;#39;,&amp;nbsp;[DanmakuController::class,&amp;nbsp;&amp;#39;index&amp;#39;]);
Route::post(&amp;#39;/danmaku/send&amp;#39;,&amp;nbsp;[DanmakuController::class,&amp;nbsp;&amp;#39;send&amp;#39;]);&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;创建控制器来处理弹幕：&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;php&amp;nbsp;artisan&amp;nbsp;make:controller&amp;nbsp;DanmakuController&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;编辑 `app/Http/Controllers/DanmakuController.php`：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-php&quot;&gt;&amp;lt;?php
namespace&amp;nbsp;App\Http\Controllers;
use&amp;nbsp;App\Events\DanmakuEvent;
use&amp;nbsp;Illuminate\Http\Request;
class&amp;nbsp;DanmakuController&amp;nbsp;extends&amp;nbsp;Controller
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;function&amp;nbsp;index()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;返回弹幕页面视图
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;function&amp;nbsp;send(Request&amp;nbsp;$request)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;event(new&amp;nbsp;DanmakuEvent($request-&amp;gt;all()));&amp;nbsp;//&amp;nbsp;触发弹幕事件
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;response()-&amp;gt;json([&amp;#39;status&amp;#39;&amp;nbsp;=&amp;gt;&amp;nbsp;&amp;#39;Message&amp;nbsp;sent&amp;nbsp;successfully&amp;#39;]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;第 6 步：在前端实现实时弹幕效果&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;编辑前端页面 `resources/views/danmaku.blade.php` ，添加用于显示弹幕和与 WebSocket 通信的 JavaScript 代码：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-markup&quot;&gt;&amp;lt;!DOCTYPE&amp;nbsp;html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;meta&amp;nbsp;charset=&amp;quot;UTF-8&amp;quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;title&amp;gt;实时弹幕&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;div&amp;nbsp;id=&amp;quot;danmaku-area&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;script&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;let&amp;nbsp;ws&amp;nbsp;=&amp;nbsp;new&amp;nbsp;WebSocket(&amp;#39;ws://127.0.0.1:5200/danmaku&amp;#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ws.onmessage&amp;nbsp;=&amp;nbsp;(event)&amp;nbsp;=&amp;gt;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;let&amp;nbsp;data&amp;nbsp;=&amp;nbsp;JSON.parse(event.data);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;displayDanmaku(data.message);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;function&amp;nbsp;displayDanmaku(message)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;let&amp;nbsp;danmakuArea&amp;nbsp;=&amp;nbsp;document.getElementById(&amp;quot;danmaku-area&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;let&amp;nbsp;danmakuDiv&amp;nbsp;=&amp;nbsp;document.createElement(&amp;quot;div&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;danmakuDiv.textContent&amp;nbsp;=&amp;nbsp;message;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;danmakuArea.appendChild(danmakuDiv);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;添加逻辑以处理弹幕动画
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;在 Laravel 8 应用中使用 LaravelS 来实现实时弹幕功能是一种高效的方式，它利用了 Swoole 的高性能和 Laravel 的强大功能。通过创建事件和监听器来处理弹幕数据的广播，我们成功在应用中添加了WebSockets实时通信功能。实现了一个弹幕系统的基本流程，包括客户端的消息发送和弹幕显示。这只是基础教程，并可根据具体需求进行进一步的功能&lt;a class=&quot;lytk_tag&quot;&gt;开发&lt;/a&gt;和性能优化。&lt;/span&gt;&lt;/p&gt;</description><pubDate>Wed, 01 May 2024 12:16:19 +0800</pubDate></item><item><title>NineAi 新版AI系统网站源码 仿poe ChatGPT</title><link>https://www.transyun.com/natter/100.html</link><description>&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Nine AI.ChatGPT是基于ChatGPT开发的一个人工智能技术驱动的自然语言处理工具，它能够通过学习和理解人类的语言来进行对话，还能根据聊天的上下文进行互动，真正像人类一样来聊天交流，甚至能完成撰写邮件、视频脚本、文案、翻译、代码，写论文等任务。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://pic.transyun.com//2024/04/202404276881_9223.png&quot; title=&quot;5b5756afc2a568939e097b2.png&quot; alt=&quot;5b5756afc2a568939e097b2.png&quot; width=&quot;859&quot; height=&quot;474&quot; style=&quot;width: 859px; height: 474px;&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://pic.transyun.com//2024/04/202404276668_5042.png&quot; title=&quot;deecedc066f8fc7a3e0980d.png&quot; alt=&quot;deecedc066f8fc7a3e0980d.png&quot; width=&quot;860&quot; height=&quot;492&quot; style=&quot;width: 860px; height: 492px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;必要环境&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;nodejs version &amp;gt; 16&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;pnpm version &amp;gt; 6&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;mysql version &amp;gt;= 5.7&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;redis&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;目录结构&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;chat 用户端代码&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;admin 管理端代码&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;service 服务端代码&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;本地开发&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;三端统一命令&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;pnpm install 安装依赖&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;pnpm dev 启动项目&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;pnpm build 打包项目&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;启动项目&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;分别安装依赖 pnpm i&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;首先启动服务端进入service 创建.env文件 在其中修改 测试数据库信息和redis 配置完成后 pnpm dev&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;数据库通过orm映射 启动项目会自动创建数据库&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;启动完成后可以打开chat admin pnpm dev启动&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;关于授权&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;授权模块在 src/modules/globalConfig/globalConfig.service.ts 文件下&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;对函数 nineAiCheckAuth 移除其中内容就并且移除onModuleInit的nineAiCheckAuth就可以移除授权&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;对应的 src/modules/task/task.service.ts中的定时任务也可以移除掉 checkauth 定时任务&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;打包路径问题&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;service&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;后端服务直接 pnpm build 即可 .env为环境变量文件 需要后续自己挂载或者创建 项目有 示例文件.env.example&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;打包命令会对代码混淆，打包之后 只需要下图这些文件即可、其他文件不再需要&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;后端服务打包后需要这七个文件&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;chat&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;前端项目打包的配置文件是.env.production 和admin相同&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;只需要改变这个变量 如果分开部署的则填写你的线上后端服务地址 建议分开 第一行地址填写这个自己的线上地址就行&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;admin&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;管理端是同理、一样修改这个文件&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;同样分离部署只需要打开红框的内容即可、替换为自己的线上地址 其余配置并不需要修改 也暂时用不到&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;其他文件&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;刷新404问题&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;前端history项目刷新都会404 需要对Nginx进行配置&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 18px;&quot;&gt;&lt;strong&gt;请联系客服购买&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18px; color: #FF0000;&quot;&gt;PS：虚拟主机可能运行环境无法配置，具体咨询主机提供商。服务器内存需在2G及以上&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;</description><pubDate>Mon, 29 Apr 2024 13:22:17 +0800</pubDate></item><item><title>在ThinkPHP中如何使用中间件来处理跨域？</title><link>https://www.transyun.com/tool/133.html</link><description>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://pic.transyun.com//2024/04/202404249149_7782.png&quot; title=&quot;down6512665.png&quot; alt=&quot;down6512665.png&quot; width=&quot;565&quot; height=&quot;294&quot; style=&quot;width: 565px; height: 294px;&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;在ThinkPHP中使用中间件处理跨域是一种非常灵活且有效的方法。下面是在ThinkPHP中创建和使用&lt;a href=&quot;https://www.transyun.com/tool/132.html&quot; target=&quot;_blank&quot;&gt;跨域&lt;/a&gt;中间件的详细步骤：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;第一步：创建中间件&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;在ThinkPHP项目中，首先需要创建一个新的中间件类，例如，可以将它放在应用的application/middleware目录下，并命名为CrossDomain.php:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-php&quot;&gt;//&amp;nbsp;application/middleware/CrossDomain.php
namespace&amp;nbsp;appmiddleware;
class&amp;nbsp;CrossDomain
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;function&amp;nbsp;handle($request,&amp;nbsp;Closure&amp;nbsp;$next)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;设置响应头信息
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;header(&amp;#39;Access-Control-Allow-Origin:&amp;nbsp;*&amp;#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;header(&amp;quot;Access-Control-Allow-Headers:&amp;nbsp;Origin,&amp;nbsp;X-Requested-With,&amp;nbsp;Content-Type,&amp;nbsp;Accept,&amp;nbsp;Authorization&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;header(&amp;#39;Access-Control-Allow-Methods:&amp;nbsp;GET,&amp;nbsp;POST,&amp;nbsp;PATCH,&amp;nbsp;PUT,&amp;nbsp;DELETE,&amp;nbsp;OPTIONS&amp;#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;header(&amp;#39;Access-Control-Allow-Credentials:&amp;nbsp;true&amp;#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;($request-&amp;gt;method()&amp;nbsp;==&amp;nbsp;&amp;#39;OPTIONS&amp;#39;)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;如果是OPTIONS请求，则终止请求并发送头信息
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;response(&amp;#39;&amp;#39;,&amp;nbsp;204);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;继续执行后续请求处理
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;$next($request);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;在这个中间件里，我们对所有的跨域请求放宽了限制，允许任何源进行跨域请求，并允许了常见的HTTP请求方法及自定义的请求头。同时，我们还处理了OPTIONS预请求，返回状态为204，并终止后续请求的处理。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;第二步：注册中间件&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;中间件创建好之后，需要在全局（或者基于路由的）注册这个中间件，使得中间件能够被自动调用。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;全局注册：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;全局注册通常在应用的全局中间件定义文件中进行，例如application/middleware.php:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-php&quot;&gt;//&amp;nbsp;application/middleware.php
return&amp;nbsp;[
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;其他全局中间件...
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;appmiddlewareCrossDomain::class,
];&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;基于路由的注册：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;如果只希望对某些路由应用跨域中间件，可以在路由定义时单独注册：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-php&quot;&gt;//&amp;nbsp;路由定义文件：如&amp;nbsp;application/route.php
use&amp;nbsp;thinkRoute;
use&amp;nbsp;appmiddlewareCrossDomain;
//&amp;nbsp;注册一个中间件到特定路由
Route::group(&amp;#39;api&amp;#39;,&amp;nbsp;function()&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Route::rule(&amp;#39;user/:id&amp;#39;,&amp;nbsp;&amp;#39;User/read&amp;#39;)-&amp;gt;middleware(CrossDomain::class);
})-&amp;gt;allowCrossDomain();
//&amp;nbsp;或者使用闭包形式注册
Route::group(&amp;#39;api&amp;#39;,&amp;nbsp;function()&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Route::rule(&amp;#39;user/:id&amp;#39;,&amp;nbsp;&amp;#39;User/read&amp;#39;)-&amp;gt;middleware([CrossDomain::class]);
})-&amp;gt;allowCrossDomain();&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;当你这样设置后，所有经过CrossDomain中间件处理的请求都会为响应对象设置好处理跨域问题所需的各种HTTP头信息。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;strong&gt;第三步：测试确保中间件工作&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;完成中间件的创建和注册后，应当测试确保中间件正常工作：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;1. 从不同的域名或端口发起Ajax请求测试是否可以成功接收到后端的响应。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;2. 使用浏览器的&lt;a class=&quot;lytk_tag&quot;&gt;开发者&lt;/a&gt;工具检查网络请求，确保跨域请求的响应头信息符合预期。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;以上就是在ThinkPHP中通过中间件处理跨域请求的方法。需要注意跨域安全性问题，例如，不应该在生产环境中将Access-Control-Allow-Origin设置为*，而应该明确指定允许的源来提高安全性。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: 18px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;</description><pubDate>Mon, 29 Apr 2024 10:18:48 +0800</pubDate></item><item><title>如何解决在ThinkPHP和Vue之间实现跨域</title><link>https://www.transyun.com/tool/132.html</link><description>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://pic.transyun.com//2024/04/202404248705_8648.jpeg&quot; title=&quot;downjgff.jpeg&quot; alt=&quot;downjgff.jpeg&quot; width=&quot;570&quot; height=&quot;259&quot; style=&quot;width: 570px; height: 259px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;跨域是由于浏览器同源策略导致的问题，当客户端尝试从一个域名下发出请求到另一个不同的域名时，就可能遇到跨域请求阻止的情况。在前后端分离的架构中，像Vue这样的前端框架很可能会运行在不同的端口或者域名，而ThinkPHP作为后端框架运行在另一端口或域名，因此需要配置跨域访问。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;这里是如何在ThinkPHP和Vue之间实现跨域的步骤：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;在ThinkPHP中设置跨域：&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;1. 修改响应头：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp; &amp;nbsp;打开位于ThinkPHP项目的全局中间件或者在需要跨域的Controller里面设置。你可以通过设置header来添加跨域的允许：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-php&quot;&gt;//&amp;nbsp;设置跨域允许的来源，这里设置为&amp;#39;*&amp;#39;是允许所有来源
header(&amp;quot;Access-Control-Allow-Origin:&amp;nbsp;*&amp;quot;);
//&amp;nbsp;设置允许的跨域请求方法
header(&amp;quot;Access-Control-Allow-Methods:&amp;nbsp;GET,&amp;nbsp;POST,&amp;nbsp;OPTIONS&amp;quot;);
//&amp;nbsp;设置请求头中可以包括哪些字段
header(&amp;quot;Access-Control-Allow-Headers:&amp;nbsp;Origin,&amp;nbsp;X-Requested-With,&amp;nbsp;Content-Type,&amp;nbsp;Accept,&amp;nbsp;Authorization&amp;quot;);&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;2. 使用中间件：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp; &amp;nbsp;为了不每个Controller都重复写这些代码，可以创建一个中间件来处理跨域。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-php&quot;&gt;namespace&amp;nbsp;apphttpmiddleware;
class&amp;nbsp;Cors&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;function&amp;nbsp;handle($request,&amp;nbsp;Closure&amp;nbsp;$next)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;header(&amp;#39;Access-Control-Allow-Origin:&amp;nbsp;*&amp;#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;header(&amp;quot;Access-Control-Allow-Methods:&amp;nbsp;GET,&amp;nbsp;POST,&amp;nbsp;OPTIONS&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;header(&amp;#39;Access-Control-Allow-Headers:&amp;nbsp;Origin,&amp;nbsp;X-Requested-With,&amp;nbsp;Content-Type,&amp;nbsp;Accept,&amp;nbsp;Authorization&amp;#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(request()-&amp;gt;isOptions())&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;response(&amp;#39;&amp;#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;$next($request);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;3. 注册中间件：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp; &amp;nbsp;将上边创建的中间件注册到全局中间件列表middleware.php中。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-php&quot;&gt;return&amp;nbsp;[
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;其他全局中间件...
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;apphttpmiddlewareCors::class,
];&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;在Vue中配置代理以处理跨域：&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;在开发环境中，Vue通常提供了代理服务来处理跨域问题。Vue CLI提供的vue.config.js可以配置这个代理服务。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;1. 创建或修改vue.config.js 文件在Vue项目的根目录下：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-php&quot;&gt;module.exports&amp;nbsp;=&amp;nbsp;{
&amp;nbsp;&amp;nbsp;devServer:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;proxy:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;^/api&amp;#39;:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;target:&amp;nbsp;&amp;#39;http://localhost:xxxx&amp;#39;,&amp;nbsp;//&amp;nbsp;后端服务器地址和端口
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;changeOrigin:&amp;nbsp;true,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;secure:&amp;nbsp;false,&amp;nbsp;//&amp;nbsp;如果是https接口，需要配置这个参数为true
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pathRewrite:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;^/api&amp;#39;:&amp;nbsp;&amp;#39;&amp;#39;&amp;nbsp;//&amp;nbsp;这里理解成用&amp;#39;/api&amp;#39;代替target里面的地址，后面组件中我们调用接口时直接用api代替&amp;nbsp;比如我要调用&amp;#39;http://localhost:xxxx/user/add&amp;#39;，直接写&amp;#39;/api/user/add&amp;#39;即可
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;}
}&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;proxy部分的含义是说，当你在Vue应用中发起到/api路径的请求时，这个请求将被代理到http://localhost:xxxx这个后端服务器地址。changeOrigin为true意味着会自动更新请求的headers中的Host值为目标服务器的值。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;2. 使用axios时配置基础路径：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;如果你使用axios来发起请求，可以设置基础路径，使得每次请求都会自动加上/api前缀：&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-javascript&quot;&gt;js
import&amp;nbsp;axios&amp;nbsp;from&amp;nbsp;&amp;#39;axios&amp;#39;;
const&amp;nbsp;baseURL&amp;nbsp;=&amp;nbsp;process.env.NODE_ENV&amp;nbsp;===&amp;nbsp;&amp;#39;production&amp;#39;&amp;nbsp;
&amp;nbsp;&amp;nbsp;?&amp;nbsp;&amp;#39;http://production-endpoint&amp;#39;
&amp;nbsp;&amp;nbsp;:&amp;nbsp;&amp;#39;/api&amp;#39;;
const&amp;nbsp;instance&amp;nbsp;=&amp;nbsp;axios.create({
&amp;nbsp;&amp;nbsp;baseURL
});&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;这样配置之后，你在本地开发时，所有到/api的请求都会自动被代理到远程的后端服务上，而在生产模式下，会使用设定的生产服务端点。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;注意：在生产环境中，你可能需要在服务器上进行配置（如Nginx反向代理）以处理跨域，并且你通常不需要Vue的代理。这些配置在实际部署时的服务器设置中完成。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;通过在ThinkPHP后端设置跨域头，在Vue前端设置代理&lt;a class=&quot;lytk_tag&quot;&gt;服务器&lt;/a&gt;，可以解决开发时的跨域问题。在生产环境中，通常由网站服务器的相关配置来处理跨域和请求代理。&lt;/span&gt;&lt;/p&gt;</description><pubDate>Sun, 28 Apr 2024 20:29:27 +0800</pubDate></item><item><title>wordpress汉化主题：新闻杂志sahifa主题</title><link>https://www.transyun.com/wp/131.html</link><description>&lt;h6&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;主题介绍&lt;/span&gt;&lt;/h6&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;这是一款新闻、杂志风格的响应式wordpress主题，后台全汉化独立的主题设置选择，让更多wp粉丝能快速上手。
这套wordpress模板非常干净清爽，适合新闻、杂志、博客、图片分享等等各种类型的网站使用，主题采用响应式设计，兼容手机移动设备浏览。&lt;/span&gt;&lt;/p&gt;&lt;h6&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;主题预览&lt;/span&gt;&lt;/h6&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://pic.transyun.com//2024/04/202404243204_9655.jpg&quot; title=&quot;03_preview3-592x705.jpg&quot; alt=&quot;03_preview3-592x705.jpg&quot;/&gt;&lt;/p&gt;&lt;h6&gt;主题下载&lt;/h6&gt;&lt;p&gt;&lt;a href=&quot;https://pan.baidu.com/s/1xA6xDtPOlXTZxTaEm3XQjA?pwd=lenv&quot; target=&quot;_blank&quot; title=&quot;百度网盘&quot; style=&quot;font-size: 16px; text-decoration: underline;&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;百度网盘&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; 提取码：lenv&lt;/span&gt;&lt;/p&gt;</description><pubDate>Sun, 28 Apr 2024 18:33:17 +0800</pubDate></item><item><title>wordpress淘客主题：淘客ZZDGM主题</title><link>https://www.transyun.com/wp/130.html</link><description>&lt;h6&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;主题介绍&lt;/span&gt;&lt;/h6&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;这是一款知名的淘宝客ZZDGM主题， wordpress主题内置SEO设置、自动生成转跳页面、前台会员系统、本地化会员头像、会员中心、购物投票等功能，另外在广告位方面也是扩展了不少位置，特别适合新手使用。&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;h6&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;主题预览&lt;/span&gt;&lt;/h6&gt;&lt;p&gt;&lt;a href=&quot;/zb_users/upload/2014/05/2014-05-16T18-46-16.243Z.jpg&quot;&gt;&lt;img class=&quot;alignnone size-full wp-image-311&quot; src=&quot;/zb_users/upload/2014/05/2014-05-16T18-46-16.243Z.jpg&quot; alt=&quot;2014-05-16T18-46-16.243Z&quot; width=&quot;843&quot; height=&quot;1216&quot; style=&quot;width: 843px; height: 1216px;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;h6&gt;主题下载&lt;/h6&gt;&lt;p&gt;&lt;a href=&quot;https://pan.baidu.com/s/1HPj2uUmfpbS2jOT0LLSbxQ&quot; target=&quot;_blank&quot; title=&quot;百度网盘&quot;&gt;百度网盘&lt;/a&gt;&amp;nbsp; 提取码: nki1&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Sun, 28 Apr 2024 15:30:35 +0800</pubDate></item><item><title>wordpress图片主题：Win8风格SDesign主题</title><link>https://www.transyun.com/wp/129.html</link><description>&lt;h6&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;主题介绍&lt;/span&gt;&lt;/h6&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;这款主题是史家小学网站改版设计的并免费提供该wordpress&lt;span style=&quot;font-size: 16px; text-wrap: wrap;&quot;&gt;图片资讯类&lt;/span&gt;主题下载。主题有点win8的风格，也就是metro的赶脚，主题设计的有点简陋，喜欢的同学估计看到不满意的需要自己DIY该wordpress图片主题。&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;SDesign主题使用说明：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;1、主题的全部设置，都是在后台-外观-主题设置中完成的，详细设置后，即可从容使用主题了。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;2、封面图片在写文章的页面里，可以设置特色图片，也可以设置外链图片地址。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;3、幻灯片会自动调用任何设置了副标题的文章，切记！&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;4、LOGO图片不会自动缩放，建议设置大小为 250x54，或者更小。&lt;/span&gt;&lt;/p&gt;&lt;h6&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;主题预览&lt;/span&gt;&lt;/h6&gt;&lt;p&gt;&lt;a href=&quot;/zb_users/upload/2014/05/1Ycfk.jpg&quot;&gt;&lt;img class=&quot;alignnone size-full wp-image-338&quot; src=&quot;/zb_users/upload/2014/05/1Ycfk.jpg&quot; alt=&quot;1Ycfk&quot; width=&quot;700&quot; height=&quot;1626&quot; style=&quot;width: 700px; height: 1626px;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;主题下载&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://pan.baidu.com/s/1MGL0eUzFlr6XqOWaunXXXg&quot; target=&quot;_blank&quot; title=&quot;百度网盘&quot; style=&quot;font-size: 16px; text-decoration: underline;&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;百度网盘&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp; 提取码：4hsy&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Sun, 28 Apr 2024 12:29:14 +0800</pubDate></item><item><title>wordpress博客主题：Grayzone主题的灵活性与灰色设计</title><link>https://www.transyun.com/wp/128.html</link><description>&lt;h6&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;主题介绍&lt;/span&gt;&lt;/h6&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;Grayzone主题是以其灵活性而闻名的&lt;a href=&quot;https://cn.wordpress.org/download/&quot; target=&quot;_blank&quot;&gt;wordpress&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;https://www.transyun.com/wp/&quot; target=&quot;_blank&quot;&gt;博客模板&lt;/a&gt;。这个主题都能完美适应各种设备，无论您的读者使用何种设备访问您的博客，他们都能获得最佳的浏览体验。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;与其他主题相比，Grayzone主题的灰色设计独特而引人注目。您可以根据自己的喜好将侧边栏设置为左侧、右侧或者干脆不使用侧边栏。这种灵活性使您能够根据自己的需求和风格来定制博客的外观。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;除了侧边栏的设置，Grayzone主题还允许您选择侧边栏颜色、标题颜色和主要强调色。这些选项使您能够将博客的整体风格与您的品牌形象相一致，从而增强博客的专业性和独特性。&lt;/span&gt;&lt;/p&gt;&lt;h6&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;主题预览&lt;/span&gt;&lt;/h6&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://pic.transyun.com//2024/04/202404241802_2823.png&quot; width=&quot;699&quot; height=&quot;606&quot; style=&quot;text-align: center; width: 699px; height: 606px;&quot;/&gt;&lt;/p&gt;&lt;h6&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;主题下载&lt;/span&gt;&lt;/h6&gt;&lt;p&gt;&lt;a href=&quot;https://pan.baidu.com/s/1iRu1p2ZHAP5G5Mvp7DNBhg?pwd=lry4&quot; target=&quot;_blank&quot; title=&quot;百度网盘&quot; style=&quot;font-size: 16px; text-decoration: underline;&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;百度网盘&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp; &amp;nbsp; 提取码：lry4&lt;/span&gt;&lt;/p&gt;</description><pubDate>Sun, 28 Apr 2024 08:53:59 +0800</pubDate></item></channel></rss>