来自Apache

时间:2015-09-18 17:55:11

标签: angularjs apache

我有一个 Angular app ,它使用PHP作为API,还有一点点用于前端。

路由已成为不可能;只返回第一级路线。

我的结构如下:

  • /app/index.html
  • / app / scripts / [所有角度文件]
  • / app / views / [所有PHP解析的HTML文件]
  • / app / api / [app PHP files]

路由器(Angular):

angular.module('MyApp')
.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {

$locationProvider.html5Mode(true);

$routeProvider
    .when('/', {redirectTo: '/home'})
    .when('/home', {
        templateUrl: 'views/mainview.php?sec=home',
        controller: 'HomeCtrl'
    })
    .when('/user', {
        templateUrl: 'views/mainview.php?sec=user',
        controller: 'ProfileCtrl'
    });

vhosts Apache文件

<VirtualHost 127.0.0.2:80>
  DocumentRoot "M:/site/app"
  # names and emails commented out
</VirtualHost>

的.htaccess

<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On
  RewriteRule ^/user/([0-9]+)$ /user?user=$1
</IfModule>

当我访问127.0.0.2时,它会重定向到/ home并正常工作。 当我访问/ user?id = 1时,它也可以正常工作。 但是如果我检索/ user / 1,那么只加载主要的PHP解析的HTML,但所有依赖项(脚本,css,其他任何东西)只返回相同的主HTML文件,因此失败。

我看过many StackOverflow responses,到目前为止,我还无法解决任何问题......

有人可以帮我做路由吗?

1 个答案:

答案 0 :(得分:0)

您似乎没有/ user / 1的路由。尝试像

这样的东西
.when('/user/:userId')

查看angular文档中的示例:https://docs.angularjs.org/api/ngRoute/service/$route#example