一尘不染

网站托管到IIS后AngularJS路由不起作用

angularjs

我们正在使用ASP.NET
MVC框架中的AngularJS创建SPA技术,当从VS2013运行时,页面之间的AngularJS路由工作正常,但是将应用程序托管到IIS7.5路由后无法正常工作,

路由脚本:

   var appRoot = angular.module('main', ['ngRoute', 'ngGrid', 'ngResource']);     //Define the main module

    appRoot
        .config(['$routeProvider', function ($routeProvider) {
            //Setup routes to load partial templates from server. TemplateUrl is the location for the server view (Razor .cshtml view)
            $routeProvider
                .when('/home', { templateUrl: '/home/main', controller: 'HomeController' }) .otherwise({ redirectTo: '/home' });
        }])
        .controller('RootController', ['$scope', '$route', '$routeParams', '$location', function ($scope, $route, $routeParams, $location) {
            $scope.$on('$routeChangeSuccess', function (e, current, previous) {
                $scope.activeViewPath = $location.path();
            });
        }]);

Index.html:

 <li class="mt" data-ng-class="{active : activeViewPath==='/home'}">
                    <a href='#/home'>
                        <i class="fa fa-dashboard"></i>
                        <span>Dashboard Home</span>
                    </a>
                </li>


  <div class="col-lg-9 main-chart" ng-view="">
                </div>

项目结构:

在此处输入图片说明


阅读 247

收藏
2020-07-04

共1个答案

一尘不染

在IIS上运行时会收到任何JS错误吗?

您在使用捆绑软件吗?如果是这样的检查,如果这个问题是因为缩小/包创建的添加 BundleTable.EnableOptimizations = true;RegisterBundles方法和VS.再次尝试

否则,我建议您在本地IIS上运行(右键单击项目的选项卡“ Web”,“服务器”部分),然后查看其是否正常运行。

根据您的路由,您应该<base href="@Url.Content("~/")" />在模板头中,并使用$locationProvider.html5Mode(true);路由配置从网址中删除“#” 。

如果以上方法均无用,请在请求中添加更多详细信息。

祝你今天愉快,

阿尔贝托

2020-07-04