Laravel RESTful Routes:具有一个后端 404 的多个应用程序
Posted
技术标签:
【中文标题】Laravel RESTful Routes:具有一个后端 404 的多个应用程序【英文标题】:Laravel RESTful Routes: Multiple apps with one backend 404 【发布时间】:2014-07-24 10:56:45 【问题描述】:我对 Laravel 有点陌生,最近我在工作中设置了一个可以完全按照我想要的方式运行的设置。我有一个 Laravel 安装,其中包含一个应用程序的子目录,这些应用程序都使用相同的后端作为 RESTful 主机。
我遇到的问题是,当我在家时,我已经克隆了这个 repo 并更改了数据库设置以匹配我在家(而不是在工作)的本地主机。但是,每次我尝试为资源加载路由时,我都会得到 404'd!
这是一些代码。
app/routes.php:
Route::get('/', function()
return 'fgh';
);
Route::any('config', function()
return 'GET config';
);
//Main Rest Controller
Route::resource('main', 'MainController');
// Route::resource('config', 'ConfigController');
Route::resource('data', 'DataController');
文件夹结构为:
|-- appREST (where Laravel is)
|-- shared
|-- apps (where the apps are)
我正在尝试做的(我在工作中做的)只是从应用程序/目录中的应用程序进行 AJAX 调用,但要针对 appREST 所在位置进行调整的相对路径。
在工作中,我 AJAX 到 '../../../appREST/public/config'
,或 ../public/main 或其他。但是,由于某种原因,这在家里失败了。工作中的两个数据库中都存在相同的表,并且两者都正常运行(其他人都没有问题)。似乎我的机器上的某些本地 Apache 或其他设置似乎失败了?
我可以在浏览器中为 REST (Route::get('/')) 加载第一条路由,并显示 'fgh'。但是,即使在更改为 GET 配置和字符串之后,任何调用 AJAX 或浏览器的任何路由,但 '/' 404s 除外。
另外,请注意,与此同时,应用程序本身运行良好。如果我加载静态/硬数据而不是我尝试加载的数据,则问题为零。这似乎与我在 Laravel/Apache 中的路由隔离。
编辑 我忘记包含 /appREST/public 文件夹的 HTACCESS 文件。这里是:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME !-f
RewriteRule ^ index.php [L]
</IfModule>
注意
设置是一个 git repo,我实际上在两台不同的机器上安装了它。在原始机器上,repo 作为工作目录开始,上面的代码工作正常。只有在我家的 clonedTo 机器上路由失败。
有人有什么想法或建议吗? 谢谢!
【问题讨论】:
【参考方案1】:我最终解决此问题的唯一方法是彻底重新安装 XAMPP 和 Laravel。 鉴于我可以找到 '/' 路由并且错误是 404,我将暂时称其为 Apache 错误。
因此,对于遇到此问题的其他人:如果您的 Laravel 路由 404,我建议您检查您的 XAMPP/Web 服务器设置!
【讨论】:
以上是关于Laravel RESTful Routes:具有一个后端 404 的多个应用程序的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Artisan 命令 (PHP) 在 Laravel 5.2 中创建 RESTful 资源控制器