繁体   English   中英

在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,因此路由将不起作用。

在公共目录中重命名文件夹,或重命名路由。 您不能同时引用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM