【问题标题】:Laravel group route issueLaravel 组路由问题
【发布时间】:2016-03-31 17:36:21
【问题描述】:

我正在使用此代码来实现管理区域路由,但 Route::get('/',...) 不起作用,看来我应该在 get 中使用 / 以外的任何东西,否则当我浏览到时 laravel 不会加载视图mysite/admin/

Route::group(['prefix' => 'admin', 'namespace' => 'admin', 'as' => 'admin'], function() {
    Route::get('/', function() {
        return view('backend.index');
    });
    Route::resource('post', 'PostController');
});

更新:public 中有一个admin 文件夹,即public/admin。 Laravel 似乎打开了这个目录而不是通过路由!
正常吗?
公用文件夹结构是否优先于Route::get()

【问题讨论】:

  • 我在我的项目中检查了你的路线,看起来它工作正常。你的问题究竟是什么?你能显示你的视图的文件夹结构吗?
  • 返回什么视图并不重要,即使我这样做return 'helllooo' 会发生确切的结果,即显示包含 js css 和其他内容的 public/admin 文件夹的结构,如图所示 here

标签: php .htaccess laravel mod-rewrite laravel-routing


【解决方案1】:

如果 public 文件夹中有 admin 文件夹,则显示此目录内容是正常的,但这不是 Laravel 问题。

如果您查看public/.htaccess,您会看到类似这样的内容:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

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

所以如果public 目录中存在目录或文件,Laravel 将不会启动应用程序,但服务器会显示此目录或此文件。这是应该做的,因为如果没有这样的规则,就无法显示 CSS 文件、JavaScript 文件或图像。

您应该做的是将public 文件夹中的目录名称从admin 更改为其他名称(然后在您的代码中进行更改以反映此更改)或将admin 路由更改为其他名称

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-18
    • 2014-08-14
    • 2018-11-20
    • 1970-01-01
    • 2019-07-16
    相关资源
    最近更新 更多