【发布时间】:2016-09-12 14:31:03
【问题描述】:
我有一个简单的 AngularJS 应用程序,其中没有与 nodeJS 相关的代码。我在从 url 中删除 # 时遇到问题。我使用 ui-routes 进行路由。
'use strict';
var app = angular.module('myapp', ['ui-router']).
config(['$stateProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$stateProvider.
state('home', {
url: '/',
templateUrl: 'views/index.html'
})
.state('where-am-i', {
url: '/where-am-i',
templateUrl: 'views/where_am_i.html',
controller: 'mainCtrl'
})
.state('audience', {
url: '/audience',
templateUrl: 'views/audience.html',
controller: 'mainCtrl'
});
}]);
还在我的 index.html 的 head 部分添加了基本标记。
<base href='/' />
也尝试过不需要基础但仍然无法使其正常工作。
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
添加基本标记会显示我在 index.html 文件中包含的所有资产的 404。
需要一个快速简单的解决方案。
提前谢谢你!
【问题讨论】:
-
如果您收到
404错误,那么浏览器似乎是服务器上不存在这些 URL。使用“网络”选项卡准确确定请求的 URL,然后修复服务器。 (请注意,您的问题不包含有关您正在使用的服务器或其配置方式的信息)。 -
你的 index.html 怎么样?如果您的资产得到 404,则说明您包含它们的方式有问题...
-
目前,我的应用程序处于开发阶段,所以我在本地主机上运行它,例如 [localhost/projectname]。同样使用
<base href="/" />,我直接从资产文件夹开始包含所有资产,因为我的资产文件夹位于根目录中。
标签: javascript angularjs angular-routing html5mode