{"id":875,"date":"2025-06-12T01:44:51","date_gmt":"2025-06-11T17:44:51","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/875.html"},"modified":"2025-06-12T01:44:51","modified_gmt":"2025-06-11T17:44:51","slug":"%e5%a6%82%e4%bd%95%e4%b8%ba-laravel-%e7%9a%84-public-%e7%9b%ae%e5%bd%95%e8%ae%be%e7%bd%ae%e8%87%aa%e5%ae%9a%e4%b9%89%e8%b7%af%e5%be%84","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/875.html","title":{"rendered":"\u5982\u4f55\u4e3a Laravel \u7684 \u2018\/public\u2019 \u76ee\u5f55\u8bbe\u7f6e\u81ea\u5b9a\u4e49\u8def\u5f84"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312; Laravel &#20013;&#65292;&#40664;&#35748;&#24773;&#20917;&#19979;&#65292;<code>\/public<\/code> &#30446;&#24405;&#26159;&#24212;&#29992;&#31243;&#24207;&#30340;&#26681;&#30446;&#24405;&#65292;&#23427;&#21253;&#21547;&#20102;&#38745;&#24577;&#25991;&#20214;&#65288;&#22914; CSS&#12289;JavaScript &#21644;&#22270;&#20687;&#65289;&#20197;&#21450;&#21160;&#24577;&#29983;&#25104;&#30340;&#20869;&#23481;&#65288;&#22914;&#36335;&#30001;&#21644;&#25511;&#21046;&#22120;&#36755;&#20986;&#65289;&#12290;&#22914;&#26524;&#20320;&#24819;&#23558; <code>public<\/code> &#30446;&#24405;&#37325;&#21629;&#21517;&#20026;&#20854;&#20182;&#21517;&#31216;&#65292;&#21487;&#20197;&#36890;&#36807;&#20197;&#19979;&#27493;&#39588;&#26469;&#23454;&#29616;&#65306;<\/p>\n<h3>1. &#20462;&#25913; <code>web.php<\/code><\/h3>\n<p>&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#20462;&#25913; <code>routes\/web.php<\/code> &#25991;&#20214;&#65292;&#20197;&#30830;&#20445;&#25152;&#26377;&#35831;&#27714;&#37117;&#36890;&#36807; <code>\/custom-public<\/code> &#30446;&#24405;&#36827;&#34892;&#22788;&#29702;&#12290;<\/p>\n<pre><code class=\"language-php\">\/\/ routes\/web.php\n\nuse IlluminateSupportFacadesRoute;\n\nRoute::get('\/custom-public\/{path}', function ($path) {\n    return view('welcome', ['path' =&gt; $path]);\n})-&gt;where('path', '.*');<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#20351;&#29992;&#20102; <code>where<\/code> &#26041;&#27861;&#26469;&#21305;&#37197;&#25152;&#26377;&#36335;&#24452;&#65292;&#24182;&#23558;&#20854;&#20256;&#36882;&#32473;&#35270;&#22270;&#12290;<\/p>\n<h3>2. &#20462;&#25913; <code>index.php<\/code><\/h3>\n<p>&#25509;&#19979;&#26469;&#65292;&#20320;&#38656;&#35201;&#20462;&#25913; <code>public\/index.php<\/code> &#25991;&#20214;&#65292;&#20197;&#30830;&#20445;&#25152;&#26377;&#35831;&#27714;&#37117;&#36890;&#36807; <code>\/custom-public<\/code> &#30446;&#24405;&#36827;&#34892;&#22788;&#29702;&#12290;<\/p>\n<pre><code class=\"language-php\">\/\/ public\/index.php\n\nrequire __DIR__.'\/..\/vendor\/autoload.php';\n\n$app = require_once __DIR__.'\/bootstrap\/app.php';\n\n$kernel = $app-&gt;make(IlluminateContractsHttpKernel::class);\n\n$response = $kernel-&gt;handle(\n    new IlluminateHttpRequest(\n        $request-&gt;all(),\n        $request-&gt;method(),\n        '\/',\n        [],\n        [],\n        $request-&gt;server()\n    )\n);\n\n$response-&gt;send();<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#23558;&#36335;&#30001;&#36335;&#24452;&#20174; <code>\/public<\/code> &#25913;&#20026; <code>\/custom-public<\/code>&#12290;<\/p>\n<h3>3. &#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#36335;&#30001;<\/h3>\n<p>&#20026;&#20102;&#27979;&#35797;&#26032;&#36335;&#24452;&#26159;&#21542;&#27491;&#24120;&#24037;&#20316;&#65292;&#20320;&#21487;&#20197;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#36335;&#30001;&#65306;<\/p>\n<pre><code class=\"language-php\">\/\/ routes\/web.php\n\nuse IlluminateSupportFacadesRoute;\n\nRoute::get('\/custom-public\/custom-route', function () {\n    return view('custom-view');\n});<\/code><\/pre>\n<h3>4. &#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#35270;&#22270;<\/h3>\n<p>&#26368;&#21518;&#65292;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#35270;&#22270;&#25991;&#20214; <code>resources\/views\/custom-view.blade.php<\/code>&#65306;<\/p>\n<pre><code class=\"language-html\">&lt;!-- resources\/views\/custom-view.blade.php --&gt;\n\n&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;Custom Route&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h1&gt;Welcome to Custom Route!&lt;\/h1&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<h3>&#24635;&#32467;<\/h3>\n<p>&#36890;&#36807;&#20197;&#19978;&#27493;&#39588;&#65292;&#20320;&#24050;&#32463;&#25104;&#21151;&#22320;&#23558; Laravel &#30340; <code>public<\/code> &#30446;&#24405;&#37325;&#21629;&#21517;&#20026; <code>custom-public<\/code>&#12290;&#36825;&#26679;&#65292;&#20320;&#23601;&#21487;&#20197;&#35775;&#38382;&#26032;&#30340;&#36335;&#24452;&#24182;&#26597;&#30475;&#30456;&#24212;&#30340;&#35270;&#22270;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#20171;&#32461;<\/h2><p>Laravel &#26159;&#19968;&#20010;&#24191;&#27867;&#20351;&#29992;&#30340; MVC &#26694;&#26550;&#65292;&#29992;&#20110; PHP&#65292;&#40723;&#21169;&#33391;&#22909;&#30340;&#24212;&#29992;&#31243;&#24207;&#32467;&#26500;&#65292;&#24182;&#25552;&#20379;&#20102;&#19968;&#32452;&#24037;&#20855;&#26469;&#24320;&#21457; Web &#24212;&#29992;&#31243;&#24207;&#12290;&#22312; Laravel &#24320;&#21457;&#36807;&#31243;&#20013;&#65292;&#24120;&#35265;&#30340;&#38656;&#27714;&#20043;&#19968;&#26159;&#22914;&#20309;&#20026; Laravel &#24212;&#29992;&#31243;&#24207;&#20013;&#30340;&ldquo;\/public&rdquo;&#30446;&#24405;&#35774;&#32622;&#33258;&#23450;&#20041;&#36335;&#24452;&#12290;&#22312;&#36825;&#20010;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#25506;&#32034;&#22914;&#20309;&#20026; Laravel &#24212;&#29992;&#31243;&#24207;&#20013;&#30340;&ldquo;\/public&rdquo;&#30446;&#24405;&#35774;&#32622;&#33258;&#23450;&#20041;&#36335;&#24452;&#12290;<\/p><h3>&#29702;&#35299; \/public &#30446;&#24405;<\/h3><p>&#22312;&#26631;&#20934;&#30340;Laravel&#24212;&#29992;&#31243;&#24207;&#20013;&#65292;\/public&#30446;&#24405;&#20316;&#20026;&#25991;&#26723;&#26681;&#30446;&#24405;&#65292;&#20854;&#20013;&#23384;&#20648;&#30528;index.php&#25991;&#20214;&#21644;&#20854;&#20182;&#36164;&#20135;&#65292;&#22914;&#26679;&#24335;&#34920;&#12289;JavaScript&#25991;&#20214;&#21644;&#22270;&#29255;&#31561;&#12290;&#23427;&#26159;&#25152;&#26377;Laravel&#24212;&#29992;&#31243;&#24207;&#35831;&#27714;&#30340;&#20837;&#21475;&#28857;&#65292;&#26088;&#22312;&#36890;&#36807;&#27983;&#35272;&#22120;&#30452;&#25509;&#35775;&#38382;&#21807;&#19968;&#30340;&#19968;&#20010;&#30446;&#24405;&#12290;<\/p><h2>.htaccess &#25991;&#20214;<\/h2><p>&#22914;&#26524;&#20320;&#22312;&#20351;&#29992;Apache&#26381;&#21153;&#22120;&#19978;&#25176;&#31649;Laravel&#24212;&#29992;&#65292;&#35774;&#32622;&ldquo;\/public&rdquo;&#30446;&#24405;&#30340;&#33258;&#23450;&#20041;&#36335;&#24452;&#30340;&#26041;&#27861;&#20043;&#19968;&#28041;&#21450;&#20462;&#25913;.htaccess&#25991;&#20214;&#12290;.htaccess&#25991;&#20214;&#20801;&#35768;&#24744;&#23558;&#35831;&#27714;&#20174;&#24744;&#30340;&#26381;&#21153;&#22120;&#37325;&#23450;&#21521;&#21040;&#24212;&#29992;&#31243;&#24207;&#20013;&#30340;&#30446;&#26631;&#20301;&#32622;&#12290;<\/p><pre><code>RewriteEngine On\nRewriteCond %{REQUEST_URI} !^\/custom_path\/\nRewriteRule ^(.*)$ \/custom_path\/$1 [L,NC]<\/code><\/pre><p>&#30830;&#20445;.htaccess&#25991;&#20214;&#20301;&#20110;&#39033;&#30446;&#26681;&#30446;&#24405;&#19979;&#65292;&#19988;&#23558;&#8217;custom_path&#8217;&#26367;&#25442;&#20026;&#24744;&#26032;&lsquo;&#20844;&#20849;&rsquo;&#30446;&#24405;&#30340;&#21517;&#31216;&#12290;<\/p><h2>&#26381;&#21153;&#22120;&#37197;&#32622;<\/h2><p>&#21478;&#19968;&#31181;&#35774;&#32622;&#33258;&#23450;&#20041;&#30340;&ldquo;\/public&rdquo;&#36335;&#24452;&#30340;&#26041;&#27861;&#26159;&#22312;&#24744;&#30340;Web&#26381;&#21153;&#22120;&#19978;&#37197;&#32622;&#34394;&#25311;&#20027;&#26426;&#12290;<\/p><h3>&#23545;&#20110;Apache&#65292;&#24744;&#38656;&#35201;&#25552;&#20379;&#26356;&#22810;&#20449;&#24687;&#20197;&#20415;&#25105;&#33021;&#36827;&#34892;&#32763;&#35793;&#12290;<\/h3><pre><code>&lt;VirtualHost *:80&gt;\n    DocumentRoot \"\/path\/to\/your\/application\/custom_path\"\n    ServerName your-domain.com\n\n    &lt;Directory \"\/path\/to\/your\/application\/custom_path\"&gt;\n        AllowOverride All\n        Require all granted\n    &lt;\/Directory&gt;\n&lt;\/VirtualHost&gt;<\/code><\/pre><h3>&#23545;&#20110;Nginx&#65306;<\/h3><pre><code>server {\n    listen 80;\n    server_name your-domain.com;\n    root \/path\/to\/your\/application\/custom_path;\n\n    location \/ {\n        try_files $uri $uri\/ \/index.php?$query_string;\n    }\n\n    location ~ .php$ {\n        fastcgi_pass unix:\/var\/run\/php\/php-version-fpm.sock;\n        fastcgi_index index.php;\n        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n        include fastcgi_params;\n    }\n}<\/code><\/pre><p>&#35831;&#35760;&#24471;&#23558; &#8216;\/path\/to\/your\/application\/custom_path&#8217; &#26367;&#25442;&#20026;&#24744;&#30340;&#26032; &#8216;public&#8217; &#30446;&#24405;&#30340;&#23454;&#38469;&#36335;&#24452;&#65292;&#20197;&#21450; &#8216;your-domain.com&#8217; &#26367;&#25442;&#20026;&#24744;&#33258;&#24049;&#30340;&#22495;&#21517;&#21517;&#31216;&#12290;<\/p><h2>&#20462;&#25913;Index.php<\/h2><p>&#22312;&#37197;&#32622;&#22909;Web&#26381;&#21153;&#22120;&#21518;&#65292;&#24744;&#24517;&#39035;&#26356;&#26032;&#20301;&#20110;&#26032;&ldquo;&#20844;&#20849;&rdquo;&#30446;&#24405;&#20013;&#30340;&ldquo;index.php&rdquo;&#25991;&#20214;&#65292;&#20197;&#21453;&#26144;&#36335;&#24452;&#32467;&#26500;&#30340;&#21464;&#21270;&#12290;<\/p><pre><code>require __DIR__.'\/..\/bootstrap\/autoload.php';\n$app = require_once __DIR__.'\/..\/bootstrap\/app.php';<\/code><\/pre><p>&#30830;&#20445;&#36335;&#24452;&#19982;&#24212;&#29992;&#31243;&#24207;&#30340;&#30446;&#24405;&#32467;&#26500;&#30456;&#21305;&#37197;&#65292;&#32771;&#34385;&#21253;&#25324;&lsquo;bootstrap&rsquo;&#22312;&#20869;&#30340;&#30456;&#20851;&#30446;&#24405;&#12290;<\/p><h2>&#35843;&#25972;&#37197;&#32622;<\/h2><p>&#19968;&#20123;&#36164;&#20135;&#65292;&#20363;&#22914;&#32534;&#35793;&#30340;CSS&#25110;JavaScript&#25991;&#20214;&#65292;&#20063;&#21487;&#33021;&#38656;&#35201;&#21453;&#26144;&#26032;&#30340;&#30446;&#24405;&#32467;&#26500;&#12290;&#24744;&#21487;&#33021;&#38656;&#35201;&#20462;&#25913;Laravel Mix&#37197;&#32622;&#12290;<\/p><pre><code>mix.setPublicPath('custom_path');\n<\/code><\/pre><p>&#36825;&#21578;&#35785;Laravel Mix &#23558;&#32534;&#35793;&#21518;&#30340;&#36164;&#20135;&#25918;&#32622;&#22312;&#24744;&#26032;&#30340;&#33258;&#23450;&#20041;&lsquo;&#20844;&#20849;&rsquo;&#30446;&#24405;&#20013;&#12290;&#24744;&#21487;&#20197;&#20351;&#29992;&#35270;&#22270;&#20013;&#30340;asset()&#25110;mix()&#36741;&#21161;&#20989;&#25968;&#26469;&#21253;&#21547;&#36825;&#20123;&#36164;&#20135;&#12290;<\/p><h2>&#20351;&#29992;&#33402;&#21280;&#21629;&#20196;&#33258;&#21160;&#21270;<\/h2><p>&#22914;&#26524;&#20320;&#32463;&#24120;&#38656;&#35201;&#35843;&#25972;&ldquo;&#20844;&#20849;&rdquo;&#30446;&#24405;&#32467;&#26500;&#65292;&#21487;&#20197;&#32771;&#34385;&#21019;&#24314;&#19968;&#20010;artisan&#21629;&#20196;&#26469;&#31616;&#21270;&#36825;&#20010;&#36807;&#31243;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#31034;&#20363;artisan&#21629;&#20196;&#65292;&#23427;&#33258;&#21160;&#21270;&#20102;&#35774;&#32622;&#33258;&#23450;&#20041;&#20844;&#20849;&#36335;&#24452;&#30340;&#36807;&#31243;&#65306;<\/p><pre><code>php artisan make:command SetCustomPublicPath<\/code><\/pre><p>&#35831;&#25552;&#20379;&#38656;&#35201;&#26356;&#26032;&#30340;&#21629;&#20196;&#12289;&#35268;&#21017;&#25110;&#37197;&#32622;&#30340;&#20855;&#20307;&#20449;&#24687;&#65292;&#20197;&#20415;&#25105;&#20026;&#24744;&#25552;&#20379;&#30456;&#24212;&#30340;&#32534;&#31243;&#25351;&#23548;&#12290;<\/p><h2>&#37325;&#35201;&#32771;&#34385;&#22240;&#32032;<\/h2><p>&#22312;&#26356;&#25913;&ldquo;&#20844;&#20849;&rdquo;&#30446;&#24405;&#26102;&#65292;&#32771;&#34385;&#23433;&#20840;&#24433;&#21709;&#65292;&#24182;&#30830;&#20445;&#20180;&#32454;&#23457;&#26597;&#21644;&#27979;&#35797;&#26381;&#21153;&#22120;&#37197;&#32622;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>&#22312;Laravel&#24212;&#29992;&#31243;&#24207;&#30340;\/public&#30446;&#24405;&#20013;&#33258;&#23450;&#20041;&#21487;&#20197;&#35299;&#20915;&#29305;&#23450;&#26381;&#21153;&#22120;&#38656;&#27714;&#25110;&#37096;&#32626;&#31574;&#30053;&#30340;&#38382;&#39064;&#12290;&#36890;&#36807;&#36981;&#24490;&#26412;&#25945;&#31243;&#20013;&#30340;&#26041;&#27861;&#65292;&#24320;&#21457;&#20154;&#21592;&#21487;&#20197;&#25104;&#21151;&#20462;&#25913;&#40664;&#35748;&#32467;&#26500;&#20197;&#28385;&#36275;&#20854;&#38656;&#35201;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#35201;&#22312; Laravel &#20013;&#20026; &#8216;\/public&#8217; &#30446;&#24405;&#35774;&#32622;&#33258;&#23450;&#20041;&#36335;&#24452;&#65292;&#35831;&#25353;&#29031;&#20197;&#19979;&#27493;&#39588;&#25805;&#20316;&#65306;<\/p>\n<ol>\n<li>&#39318;&#20808;&#65292;&#25171;&#24320;&#24744;&#30340; Laravel &#39033;&#30446;&#30340; <code>app\/Http\/Middleware\/VerifyCsrfToken.php<\/code> &#25991;&#20214;&#12290;<\/li>\n<li>&#22312;&#25991;&#20214;&#39030;&#37096;&#28155;&#21152;&#22914;&#19979;&#20195;&#30721;&#65306;\n<pre><code class=\"language-php\">\nnamespace AppHttpMiddleware;<\/code><\/pre><\/li>\n<\/ol>\n<p>use Closure;\nuse IlluminateSupportFacadesApp;\nuse IlluminateSupportFacadesRoute;<\/p>\n<p>class VerifyCsrfTokenMiddleware\n{\n\/**<\/p>\n<ul>\n<li>Handle an incoming request.<\/li>\n<li>\n<\/li>\n<li>@param  IlluminateHttpRequest  $request<\/li>\n<li>@param  Closure  $next<\/li>\n<li>\n<p>@return mixed\n*\/\npublic function handle($request, Closure $next)\n{\nif (App::environment(&#8216;local&#8217;) &amp;&amp; ! $this-&gt;isProduction()) {\nreturn $next($request);\n}<\/p>\n<pre><code>return redirect()-&gt;route('login');<\/code><\/pre>\n<p>}<\/p>\n<p>private function isProduction()\n{\n\/\/ &#22312;&#36825;&#37324;&#28155;&#21152;&#26816;&#26597;&#29983;&#20135;&#29615;&#22659;&#30340;&#36923;&#36753;\nreturn false; \/\/ &#25110;&#32773;&#26681;&#25454;&#23454;&#38469;&#24773;&#20917;&#36820;&#22238; true\n}\n}<\/p>\n<pre><code><\/code><\/pre>\n<\/li>\n<\/ul>\n<ol start=\"3\">\n<li>\n<p>&#22312;&#24744;&#30340;&#39033;&#30446;&#30446;&#24405;&#20013;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#25991;&#20214;&#22841;&#65292;&#20363;&#22914; <code>production<\/code>. &#36825;&#37324;&#23558;&#29992;&#20110;&#23384;&#25918;&#29983;&#20135;&#29615;&#22659;&#19979;&#30340;&#37197;&#32622;&#21644;&#25968;&#25454;&#12290;<\/p>\n<\/li>\n<li>\n<p>&#23558; <code>production<\/code> &#25991;&#20214;&#22841;&#28155;&#21152;&#21040;&#39033;&#30446;&#30340; <code>storage<\/code> &#30446;&#24405;&#19979;&#65288;&#22914;&#26524;&#23578;&#26410;&#21019;&#24314;&#65289;&#65306;<\/p>\n<pre><code class=\"language-bash\">cd &lt;your_project_path&gt;\nmkdir production\nmv storage\/production\/ &lt;your_storage_directory&gt;<\/code><\/pre>\n<\/li>\n<li>\n<p>&#29616;&#22312;&#24744;&#21487;&#20197;&#22312; Laravel &#20013;&#20351;&#29992; <code>\/public<\/code> &#30446;&#24405;&#20013;&#30340;&#25991;&#20214;&#20102;&#65292;&#26080;&#38656;&#25285;&#24515;&#23427;&#20204;&#20250;&#20986;&#29616;&#22312;&#29983;&#20135;&#29615;&#22659;&#20013;&#12290;<\/p>\n<\/li>\n<li>\n<p>&#22914;&#26524;&#38656;&#35201;&#22312;&#29983;&#20135;&#29615;&#22659;&#20013;&#35775;&#38382; <code>\/public<\/code> &#30446;&#24405;&#20013;&#30340;&#25991;&#20214;&#65292;&#35831;&#30830;&#20445;&#24744;&#30340;&#24212;&#29992;&#31243;&#24207;&#24050;&#21551;&#29992;&#29983;&#20135;&#27169;&#24335;&#65292;&#24182;&#19988;&#22312;&#29983;&#20135;&#29615;&#22659;&#19979;&#36816;&#34892;&#12290;&#36825;&#21487;&#20197;&#36890;&#36807;&#20462;&#25913; <code>.env<\/code> &#25991;&#20214;&#20013;&#30340; <code>APP_ENV=production<\/code> &#26469;&#23454;&#29616;&#12290;<\/p>\n<\/li>\n<li>\n<p>&#20851;&#20110;&#39564;&#35777; CSRF token &#30340;&#20855;&#20307;&#31034;&#20363;&#20195;&#30721;&#65306;<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppHttpControllers;\n\nuse IlluminateFoundationTestingWithoutMiddleware;\nuse IlluminateFoundationTestingDatabaseTransactions;\n\n\/**\n * @group middleware\n *\/\nclass VerifyCsrfTokenController extends Controller\n{\n    use WithoutMiddleware, DatabaseTransactions;\n\n    protected $middleware = [\n        'VerifyCsrfTokenMiddleware',\n    ];\n\n    public function __construct()\n    {\n        parent::__construct();\n        $this-&gt;middleware-&gt;add(new VerifyCsrfTokenMiddleware());\n    }\n}<\/code><\/pre>\n<p>&#29616;&#22312;&#24744;&#21487;&#20197;&#20687;&#20043;&#21069;&#19968;&#26679;&#22312; Laravel &#24212;&#29992;&#31243;&#24207;&#20013;&#20351;&#29992; <code>\/public<\/code> &#30446;&#24405;&#20013;&#30340;&#25991;&#20214;&#65292;&#32780;&#19981;&#29992;&#25285;&#24515;&#36825;&#20123;&#25991;&#20214;&#20250;&#34987;&#35823;&#35748;&#20026;&#26159;&#29983;&#20135;&#29615;&#22659;&#20013;&#30340;&#20869;&#23481;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#22312; Laravel &#20013;&#65292;&#40664;&#35748;&#24773;&#20917;&#19979;&#65292;\/public &#30446;&#24405;&#26159;&#24212;&#29992;&#038;#3..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-875","my1js","type-my1js","status-publish","hentry","my1js2nav-laravel"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/875","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=875"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=875"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=875"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=875"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}