浏览器刷新时,Angular应用程序会丢失样式和javascript(Chrome)

时间:2015-08-19 20:40:29

标签: javascript html css angularjs

我正在开发我的第一个Angular.js应用程序,它运行良好,但我一直有两个问题,刷新浏览器。我附加了一个显示问题的截屏视频的链接。这两个问题是:

  1. 当我点击刷新按钮或ctrl-f5时,页面会丢失所有CSS样式。
  2. 当我点击"日历"链接返回主页,用户名显示的内容不应该显示。在这里看一下截屏视频:Problem on screencast
  3. 这是我的路线:

    img(src = "images/image.png")

    编辑添加web.config文件部分:

    'use strict';
    
    var JBenchApp = angular.module('JBenchApp', [
        'ngRoute'
    ]);
    
    JBenchApp.config(['$routeProvider', '$locationProvider',
      function ($routeProvider, $locationProvider) {
          $routeProvider.
            when('/dashboard', {
                templateUrl: 'partials/dashboard.html',
                controller: 'JBenchCtrl'
            }).
            when('/calendar', {
                templateUrl: 'partials/calendar.html',
                controller: 'JBenchCtrl'
            }).
            when('/', {
                templateUrl: 'partials/calendar.html',
                controller: 'JBenchCtrl'
            }).
            when('/documents/:number', {
                templateUrl: 'partials/documents.html',
                controller: 'CaseDetailCtrl'
            }).
            when('/parties/:number', {
                  templateUrl: 'partials/parties.html',
                  controller: 'CaseDetailCtrl'
            }).
            otherwise({
                redirectTo: '/calendar'
            });
    
          $locationProvider.html5Mode(true);
    
      }]);
    

    任何想法如何解决这个问题都会消失?

1 个答案:

答案 0 :(得分:1)

这是因为对于浏览器,您现在正在 / some / path / 请求页面,如果您的资产路径中有任何相对网址,则浏览器会在 /some/path/js/foo.js 而不是 /js/foo.js

有几种方法可以解决这个问题,但最简单的方法就是使用绝对路径。

src="/js/foo.js"

但是有时候由于在域的子文件夹中托管应用程序,这将无法工作。在这种情况下,基础标签可能更合适。

<base href="/subfolder/">