[英]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,因此路由将不起作用。
在公共目录中重命名文件夹,或重命名路由。 您不能同时引用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]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.