在将#从angularjs与Codeigniter网站URL中移除后,如果重新加载,则会显示404页面未找到...(页面未重新加载的主要错误)?

15 浏览
0 Comments

在将#从angularjs与Codeigniter网站URL中移除后,如果重新加载,则会显示404页面未找到...(页面未重新加载的主要错误)?

在从angularjs与Codeigniter网站URL中删除#之后,主ng-view中的html未正确加载。(页面重新加载的主要错误)

为克服这个问题,我该怎么办?

var app = angular.module('main-App', ['ngRoute','angularUtils.directives.dirPagination']);

app.config(['$routeProvider','$locationProvider',

function ($routeProvider,$locationProvider) {

$routeProvider.

when('/', {

templateUrl: 'templates/home.html',

controller: 'AdminController'

}).

when('/items', {

templateUrl: 'templates/items.html',

controller: 'ItemController'

}).

when('/users', {

templateUrl: 'templates/user_view.html',

controller: 'ItemController'

}).

when('/wearhouse',{

templateUrl:'templates/wearhouse_view.html',

controller:'ItemController'

}).

when('/units',{

templateUrl:'templates/units_view.html',

controller:'ItemController'

}).

when('/product',{

templateUrl:'templates/product_view.html',

controller:'ItemController'

}).

when('/productListing',{

templateUrl:'templates/product_listing_view.html',

controller:'ItemController'

}).

when('/stock',{

templateUrl:'templates/stoke_view.html',

controller:'ItemController'

}).

otherwise(

{redirectTo : '/'}

);

$locationProvider.html5Mode(true);

}]);

Codeigniter中的.htaccess文件:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php/$1 [L]

0
0 Comments

问题出现的原因是,当从URL中删除angularjs和Codeigniter网站的#后,重新加载页面会出现404页面未找到的错误。这是因为当你从URL中删除#时,服务器会尝试对整个URL进行映射,并将数据提供给客户端。当URL中有#时,服务器会忽略#后面的内容,只映射#之前的路径。这就是angularJS利用路由的方式。

解决方法是配置服务器来处理这种请求。我曾经遇到过相同的问题,这个链接肯定会帮助你得到一些思路。

0