【问题标题】:AngularJs Page Refresh Issue after removed hash删除哈希后的AngularJs页面刷新问题
【发布时间】:2018-07-13 17:52:09
【问题描述】:

索引.html

<!DOCTYPE html>
<html lang="en" ng-app="echo">
    <head>
        <base href="/">
        // Other JS and CSS File
    </head>
    <body>
       <div ng-view></div>
    </body>
</html>

myapp.js

    myapp
  .config(function ($routeProvider, $locationProvider) {
    $routeProvider

    .when('/', {
        templateUrl : 'pages/studies.html',
        controller  : 'listStudyController'
    })
    .when('/dashboard', {
        templateUrl : 'pages/dashboard.html',
        controller  : 'mainController'
    })

    .when('/profile', {
        templateUrl : 'pages/profile.html',
        controller  : 'mainController'
    })
    .otherwise({
        redirectTo: '/'
    });

    //check browser support
    $locationProvider.html5Mode({
        enabled:true,
        requireBase:true
    });
});

.htaccess

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]

RewriteRule ^(.*) /index.html [NC,L]

注意:
- 成功从 url 中删除哈希标签。
- 当我重新加载页面时它显示错误。

未找到
在此服务器上找不到请求的 URL /profile。

【问题讨论】:

  • 尝试在myapp.js中的路线之前添加$locationProvider.hashprefix('');
  • 它不起作用,我遇到了同样的错误。
  • 我明白了。编辑“httpd-vhosts.conf”文件并设置这个 Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all 它可以工作。
  • 您应该将其发布为问题的答案并接受它,以便处于相同情况的其他人可以使用您的解决方案:)
  • 好主意,我发布了。 (y)

标签: javascript angularjs .htaccess


【解决方案1】:

第 1 步: 编辑“httpd-vhosts.conf”
第2步: 设置

<Directory /var/www/html>
           Options Indexes FollowSymLinks MultiViews
           AllowOverride All
           Order allow,deny
           allow from all
</Directory>

AllowOverride All 解决了我的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-09
    • 2017-05-03
    • 2016-11-17
    相关资源
    最近更新 更多