在删除#时重新加载页面时找不到页面

时间:2017-05-20 17:50:55

标签: javascript angularjs html5 nginx gruntjs

我在index.html和app.js中进行了更改。

  

这是app.js文件。

angular
        .module('assessmentApp', ['ngRoute', 'ngCookies', 'ngSanitize', 'timer', 'assets', 'youtube-embed'])
        .config(config)
        .run(run);

    config.$inject = ['$routeProvider', '$locationProvider', '$httpProvider'];

    function config($routeProvider, $locationProvider, $httpProvider) {
        /*$locationProvider.html5Mode({
          enabled: true,
          requireBase: false
        });*/
        $routeProvider
            .when('/', {
                templateUrl: 'views/home.html',
                controller: 'HomeController',
                controllerAs: 'vm'
            })
            .when('/login', {
                templateUrl: 'views/login.html',
                controller: 'LoginController',
                controllerAs: 'vm'
            })
        if(window.history && window.history.pushState){
                $locationProvider.html5Mode({
                    enabled: true,
                    requireBase: true,
                    rewriteLinks: true
                });
            }
    }
  

这是Index.html。

<!doctype html>
<html>

<head>
    <meta charset="utf-8">
    <title>Assessment</title>
    <meta name="description" content="">
    <meta http-equiv=X-UA-Compatible content="IE=edge">
    <meta name=viewport content="width=device-width,initial-scale=1">
    <base href="/assessment/"></base>
</head>
</html>
  1. 我已经按照与我的问题相关的所有解决方案,但我的应用仍无法正常工作。
  2. 我正在使用nginx服务器,但我不知道是否有任何更改?如果是,那么会有什么变化?
  3. 我添加了html5 api和基本标签,我从我的应用程序html文件中删除了所有#,所以我的应用程序工作正常但是当我要重新加载我的应用程序时它返回页面未找到

1 个答案:

答案 0 :(得分:0)

确保您的服务器已设置为返回index.html而不是404。 在此网站的nginx配置中添加:

error_page 404 =200 /index.html;

或者,您可以像这样重定向:

try_files $uri $uri/ /index.html;