路线未在 Laravel 4.2 内触发
Route not triggering in Laravel 4.2
我在 example.com/img/
有一个包含图片的文件夹,同时我有一个路线
get('img/{path}', 'ImageController@output');
但是当我尝试前往 example.com/img/someimagepath
并且如果图像名称是 someimagepath
时,我会得到该图像而不是上面的发射路线。
有没有办法让它触发路由而不是请求文件?
准确地说,我正在使用 https://github.com/thephpleague/glide Glide 库
这是因为服务器正在 public
文件夹中查找 img
目录,并从那里提供图像而不是加载 public/index.php
。如果未加载 index.php
,则未加载 laravel,因此路由将不起作用。
重命名 public 目录中的文件夹,或重命名您的路线。你不能让它们都引用 img
我会保持目录不变,并重命名你的路线:
get('images/{path}', 'ImageController@output');
或者,如果您真的喜欢 img
作为路段,也可以在您的路线前加上前缀:
get('app/img/{path}', 'ImageController@output');
基本上,您的路线不能遵循 public
中的任何路径层次结构。服务器知道加载 laravel 的方式是,如果它在 public
中找不到与 URI 匹配的目录或文件,它会加载 index.php
。如果它确实找到了与 URI 匹配的目录或文件路径,它将改为提供该目录或文件路径。
来自 public\.htaccess
。基本上说如果请求与文件或目录不匹配,加载 index.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
我在 example.com/img/
有一个包含图片的文件夹,同时我有一个路线
get('img/{path}', 'ImageController@output');
但是当我尝试前往 example.com/img/someimagepath
并且如果图像名称是 someimagepath
时,我会得到该图像而不是上面的发射路线。
有没有办法让它触发路由而不是请求文件?
准确地说,我正在使用 https://github.com/thephpleague/glide Glide 库
这是因为服务器正在 public
文件夹中查找 img
目录,并从那里提供图像而不是加载 public/index.php
。如果未加载 index.php
,则未加载 laravel,因此路由将不起作用。
重命名 public 目录中的文件夹,或重命名您的路线。你不能让它们都引用 img
我会保持目录不变,并重命名你的路线:
get('images/{path}', 'ImageController@output');
或者,如果您真的喜欢 img
作为路段,也可以在您的路线前加上前缀:
get('app/img/{path}', 'ImageController@output');
基本上,您的路线不能遵循 public
中的任何路径层次结构。服务器知道加载 laravel 的方式是,如果它在 public
中找不到与 URI 匹配的目录或文件,它会加载 index.php
。如果它确实找到了与 URI 匹配的目录或文件路径,它将改为提供该目录或文件路径。
来自 public\.htaccess
。基本上说如果请求与文件或目录不匹配,加载 index.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]