suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Frontend – Routing-Probleme bei der Entwicklung mit Laravel

Ich verwende Laravel für die Entwicklung. Das statische Ressourcenverzeichnis und das Routing im Projekt haben denselben Namen, wie zum Beispiel:

//web的静态资源路径
/public/web/xxx     

//定义的路由
Route::group(['prefix' => 'web'], function () {
    Route::get('/', 'XxxController@indexPage');
});

Bei einer solchen Konfiguration tritt ein 404-Fehler auf, wenn der in PHP integrierte Server für den Zugriff auf localhost:8000/web in der Entwicklungsumgebung verwendet wird:

The requested resource /web_dealer was not found on this server.

Nach einigen Recherchen scheint es, dass es daran liegt, dass es im öffentlichen Verzeichnis einen Ressourcenpfad mit demselben Namen gibt, sodass der Server keinen Grund hat, ihn direkt als statische Ressource zu verarbeiten. Tatsächlich handelt es sich bei diesem Web jedoch nur um einen Ordner, sodass der obige 404 angezeigt wird.

Bei Verwendung des Apache-Servers zum Testen scheint Apache (301) localhost:8000/web zu localhost:8000/web/ umzuleiten, und die Verzeichnisstruktur wird auf der Seite angezeigt. Durch das Festlegen der Optionen -Indexes wird nur die Anzeige deaktiviert, localhost:8000/web wird jedoch weiterhin umgeleitet.

Ich würde gerne wissen, wie man es konfiguriert, wenn man den statischen Ressourcenpfad und die Routenbenennung wie oben gezeigt vereinheitlichen möchte. Oder gibt es ein anderes besseres Namensschema?

大家讲道理大家讲道理2772 Tage vor593

Antworte allen(1)Ich werde antworten

  • 仅有的幸福

    仅有的幸福2017-05-16 16:52:56

    可以通过修改public/.htaccess来实现(Linux Mint下LAMP本地测试通过)

    步骤
    修改public目录下的.htaccess文件

    定位到:

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    原本意思是:如果不是目录!-d、也不是文件!-f,那么解析到index.php

    修改为

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
    RewriteCond %{REQUEST_FILENAME} !-d

    现在表示:如果不是文件!-f,那么解析到index.php
    (从某种意义上!-d已经没用了)

    本地测试通过,是否会带来其他问题暂时未知。

    Antwort
    0
  • StornierenAntwort