【问题标题】:404 error when typing 'www.johndoe.com/something'输入“www.johndoe.com/something”时出现 404 错误
【发布时间】:2016-07-30 05:52:32
【问题描述】:

我正在将我的产品组合构建为前端开发人员,并且仍在开发中。为了测试它,我使用 FTP 将文件上传到我的 justhost 域,这是成功的。现在,假设我的网站是 www.johndoe.com(好吧,我的实际网站是 'hassanefall.com',这样更容易理解 :))。

(我使用 angularjs 作为路线)我想去一个特定的路线/页面:www.hassanefall.com/about。当我通过单击链接导航时,关于页面有效。

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

我有 '/work'、'/contact' 等,每当我直接输入 url '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);
});

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

【问题讨论】:

    标签: angularjs routes


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢。我会看看它,如果它是服务器,那么我将返回到哈希模式。是否有替代方案,例如 pushstate?我对这一切都很陌生。 :)
    • 你可以使用 pushState 但你会失去深度链接等的能力。我会避免这种情况。 P.S:如果我回答了帮助,请将其标记为答案/添加信用(:
    猜你喜欢
    • 2013-06-15
    • 1970-01-01
    • 2022-01-05
    • 2014-08-12
    • 2011-04-12
    • 2015-06-05
    • 2020-08-21
    • 1970-01-01
    • 2019-07-17
    相关资源
    最近更新 更多