键入“www.johndoe.com/something”

时间:2016-04-08 20:12:44

标签: angularjs routes

我正在构建我的投资组合作为前端开发者,它仍处于开发阶段。为了测试它,我使用FTP将文件上传到我的justhost域,这是成功的。现在,说我的网站是www.johndoe.com(好吧,我的实际网站是'hassanefall.com',以便更容易理解:)。

(我正在使用angularjs作为路线)我想去一个特定的路线/页面:www.hassanefall.com/about。当我浏览单击链接时,about页面有效。

但是,当我在url中输入确切的url路径时,会出现404错误页面。

我有'/ work','/ contact'等,每当我直接输入网址'www.hassanefall.com/contact'而不导航到它时,就会出现404页面。好像每个页面/路由的文件都不存在。帮助?

这是代码。

注意:我使用base'/'和$ relocationProvider从url中删除了哈希。如果有答案,我们非常感激。

var app = angular.module('mySite', ['ngRoute']);
app.config(function($routeProvider, $locationProvider){

    $routeProvider
    .when('/', {
        controller: 'HomeController',
        templateUrl: 'views/home.html'
    })
    .when('/projects', {
        controller: 'HomeController',
        templateUrl: 'views/projects.html'
    })
    .when('/service', {
        controller: 'HomeController',
        templateUrl: 'views/service.html'
    })
    .when('/about', {
        controller: 'HomeController',
        templateUrl: 'views/about.html'
    })
    .when('/contact', {
        controller: 'ContactController',
        templateUrl: 'views/contact.html'
    })
    .when('/portfolio/:id', {
        controller: 'ItemController',
        templateUrl: 'views/item.html'
    })
    .otherwise({redirectTo: '/'});

    $locationProvider.html5Mode(true);
});

如果您需要更多代码示例,请告诉我们。 :)

1 个答案:

答案 0 :(得分:1)

您的服务器应支持HTML5模式。这里发生的是服务器正在寻找您的客户端路由(例如,'联系'),但没有找到它。这就是为什么你找不到404错误的原因。

另一种解决方案是返回哈希模式..