【问题标题】:CakePhp Routing Interfering with AngularJS RoutesCakePhp 路由干扰 AngularJS 路由
【发布时间】:2015-09-17 13:24:53
【问题描述】:

好的,我遇到的问题是使用 CakePhp (v3) 和 AngularJS。我想纯粹使用 CakePhp 来托管我的 JSON 网络服务。我有这个工作和以 API 为前缀的路由。我遇到的问题是让 Html 5 路由与 Angular 一起工作。例如,如果我去http://localhost/appname/home 我希望 Angular 拦截这条路线而不是 CakePhp。目前,如果我这样做,CakePhp 会抱怨 HomeController 不存在。我发现这个堆栈溢出post 使我能够获得 Angular Hashtag 路由功能/同时维护 /api/* 路由,但我真的不喜欢让我的路由看起来像 http://localhost/appname/#/home。我觉得应该进行 .htaccess 更改以允许 Cake 处理默认 URL 路径(即:http://localhost/,因此默认打开 home.ctp),否则只查找 http://localhost/api/* 前缀路由。不幸的是,我确实尝试添加RewriteRule ^/api/*,但没有运气。我通常不在 Apache/PHP 中工作,所以我很难找到解决这个问题的方法。另外,我确保在我的 httpd.conf 文件中启用了重写模块。这是我当前的 routes.php 文件,显示了 API 前缀和在访问主机根目录时调出 home.ctp 的默认路由。非常感谢经验丰富的 *AMP 开发人员提供的任何指导!

<?php

use Cake\Core\Plugin;
use Cake\Routing\Router;

Router::defaultRouteClass('Route');

Router::prefix('api', function ($routes) {
    $routes->extensions(['json', 'xml']);
    $routes->resources('Users');
    $routes->resources('UserInfo');
    Router::connect('/api/users/register', ['controller' => 'Users', 'action' => 'add', 'prefix' => 'api']);
    Router::connect('/api/userinfo/create', ['controller' => 'UserInfo', 'action' => 'add', 'prefix' => 'api']);
    $routes->fallbacks('InflectedRoute');
});

Router::scope('/', function ($routes) {
    $routes->connect('/', ['controller' => 'Pages', 'action' => 'display', 'home']);
    $routes->connect('/pages/*', ['controller' => 'Pages', 'action' => 'display']);
    $routes->fallbacks('InflectedRoute');
});

Plugin::routes();

【问题讨论】:

  • Angular 不是服务器端技术...无论浏览器发送到服务器的 url 是什么,它都会首先由您的 php 应用程序获取。
  • 何塞谢谢你,是的,我完全知道 Angular 是一种客户端技术。尽管使用 Cakephp 忽略所有非 /api/ 路由,但我应该能够启用 html 5 路由。这就是我问题的症结所在。通过在 Angular 上启用 html5 路由,我将能够在没有默认 # 路由机制的情况下访问路由,从而获得更清晰的 URL。有意义吗?

标签: angularjs cakephp cakephp-3.0 angularjs-routing


【解决方案1】:

也许我误解了你的问题,但是当请求到达服务器时,会不会太晚了?如果您希望“角度拦截”路线,则需要在客户端完成解决方案,而不是在 .htaccess 文件中。因此,您将拥有将 /appname/home 路由到正确文件的角度路线。

【讨论】:

    猜你喜欢
    • 2015-10-12
    • 2015-05-09
    • 2021-05-05
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多