【问题标题】:Angular $routeProvider not working for Apache ServerAngular $routeProvider 不适用于 Apache 服务器
【发布时间】:2015-05-21 14:06:51
【问题描述】:

我现在对此很感兴趣。我在 Linux 上使用 Apache 服务器在本地(本地主机)运行这个 Angular 前端。当我尝试访问 localhost 时,一切正常,我得到了 index.html。但现在我在 index.html 中有一个链接,它应该将用户重定向到 localhost/users。但我似乎无法让这个工作,我已经尝试了每一个解决方案,但似乎没有任何工作。也许你们中的一些人看到我做错了什么?

我的 app.js

(function() {
var app = angular.module('linkrec', ['ngRoute']);

app.config(function($routeProvider, $locationProvider) {
    $locationProvider.html5mode(true).hashPrefix('!');
    $routeProvider

        .when('/users', { 
            templateUrl: '/users.html', 
        });
});


app.controller('UsersController', [ '$http', function($http) {
    var linkrec = this;
    linkrec.users = [];

    $http.get('https://localhost:9443/users').success(function(data){
        linkrec.users = data;
    });
} ]);

})();

我的 index.html

<!DOCTYPE <!DOCTYPE html>
<html ng-app="linkrec">
    <head>
      <title>LinkRec</title>
      <link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap.min.css">
      <link rel="stylesheet" type="text/css" href="linkrec.css">
    </head>
    <body>
      <script type="text/javascript" src="node_modules/angular/angular.js"></script>
      <script type="text/javascript" src="node_modules/angular/angular-route.js"></script>
      <script type="text/javascript" src="app.js"></script>

      <h1>LinkRec</h1>
      <div class="container" ng-view>
            <a href="/users"><h2>Users</h2></a>
            <h2>Vacancies</h2>
            <h2>Groups</h2>
      </div>

    </body>
</html>

我的 .htaccess 曾经是

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)       /index.html/#!/$1 
</IfModule>

我的 .htaccess 现在

# Apache .htaccess

# angularjs pushstate (history) support:
# See http://www.josscrowcroft.com/2012/code/htaccess-for-html5-history-pushstate-url/
FallbackResource /index.html

有人发现我的错误吗?角度文件在那里并且正确链接。提前致谢。

【问题讨论】:

    标签: javascript angularjs apache .htaccess route-provider


    【解决方案1】:

    (我会发表评论,因为我不是 100% 确定我的答案,但我的代表太低了)

    我看到你打开了 html5mode,所以我认为你的 .htaccess 文件没有正确调整到这个。

    试试下面的 .htaccess 代码

    <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.html [L] </IfModule>

    【讨论】:

    • 谢谢你的帮助,我试试看!
    猜你喜欢
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    • 2013-01-21
    • 2013-09-02
    • 1970-01-01
    • 2022-06-12
    • 2013-04-16
    相关资源
    最近更新 更多