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 的多个应用程序的主要内容,如果未能解决你的问题,请参考以下文章

未找到 Laravel RESTful 控制器方法

具有多个参数值的 Laravel RESTful API

PHP Laravel 路由问题

如何使用 Artisan 命令 (PHP) 在 Laravel 5.2 中创建 RESTful 资源控制器

Laravel:routes/api.php 或 routes/web.php 中的 AJAX 请求端点?

测试登录用户在 Laravel 4 中具有正确的 id