CSS 在 angularjs 中路由时未在其他视图中加载

CSS not loaded in other views when routing in angularjs

嘿,所以我在 Angularjs 中使用 routeProvider 和 ng-view 在视图之间进行路由。我的问题是当路线改变时我的 css 没有加载。我尝试包含 Angular-css 以便 css 可以包含在每个视图中,但它似乎不起作用。它在从 ng-view (home.html) 加载的第一页中加载,但是当我从那里 link 到另一个页面时,css 停止加载。

index.html:

<!DOCTYPE html>
<html lang="en" ng-app="myApp">
  <head>

    <script src="app/lib/jquery-3.0.0.js"></script>
    <link href="styles.css" rel="stylesheet" type="text/css" />

    <script src="app/lib/angular.min.js"></script>
    <script src="app/lib/angular-route.min.js"></script>
    <script src="app/lib/angular-css.min.js"></script>
    <script src="app/lib/app.js"></script>
  </head>
  <body>

    <main ng-view>
    </main>

  </body>

app.js

var myApp = angular.module('myApp', ['ngRoute', 'angularCSS']);
myApp.config(['$routeProvider', function($routeProvider){
$routeProvider
  .when('/login', {
    templateUrl: 'views/login.html',
    css: 'styles.css'
  })
  .when('/home', {
    templateUrl: 'views/home.html',
    css: 'styles.css'
  })
  .when('/signup', {
    templateUrl: 'views/signup.html',
    css: 'styles.css'
  })
  .when('/submitdish', {
    templateUrl: 'views/submitdish.html',
    css: 'styles.css'
  })
  .when('/login', {
    templateUrl: 'views/login.html',
    css: 'styles.css'
  })
  .otherwise({
    redirectTo: '/home',
    css: 'styles.css'
  });
}]);

home.html:

<ul class="nav">
     <a align="center" href="views/home.html"><li>Home</li></a>
     <a align="center" href=""><li>About</li></a>
     <a align="center" href="#"><li>Contact</li></a>
  </ul>

<section class="container">
  <div class="left-half">
    <article>
      <a href="views/submitdish.html" class="Button">Sell a Dish</a>

      <p>Something Something Something about Selling your home-cooked dishes</p>
    </article>
  </div>
  <div class="right-half">
    <article>
      <a href="views/buydish.html" class="Button">Buy a Dish</a>
      <p>Yada yada yada buy food from your neighbors</p>
    </article>
  </div>
</section>

尝试改变注射方法

你有什么

var myApp = angular.module('myApp', ['ngRoute', 'angularCSS']);

var myApp = angular.module('myApp', ['ngRoute', 'door3.css']);

就好像你正在使用这个项目和版本 1.0.7

http://door3.github.io/angular-css

还要验证您的 CSS 路径,即使您的 .html 和 css 在同一文件夹中,您也必须明确说明

    var myApp = angular.module('myApp', ['ngRoute', 'angularCSS']);

    myApp.config(['$routeProvider', function($routeProvider){

    $routeProvider
      .when('/login', {
        templateUrl: 'views/login.html',
        css: 'views/styles.css'
      }); 
}]);

或者如果在不同的文件夹中

var myApp = angular.module('myApp', ['ngRoute', 'angularCSS']);

        myApp.config(['$routeProvider', function($routeProvider){

        $routeProvider
          .when('/login', {
            templateUrl: 'views/login.html',
            css: 'Content/styles.css'
          }); 
    }]);

好的,我发现问题是我使用

链接到其他视图

<a href="views/submitdish.html" class="Button">Sell a Dish</a>

我应该使用#/submitdish 进行链接(以便正确使用 routeProvider)

<a href="#/submitdish" class="Button">Sell a Dish</a>

默认情况下,$routeProvider 和 $locationProvider 在 URL--"hashbang mode".

中查找“#”

例如,http://example.com/#/home 将使用家庭模板URL,使用您的原始设置。

如果您不想使用哈希,请将 $locationProvider.html5Mode 设置为 true.The 下面的小示例会让您使用 URL 浏览器,例如 http://www.example.com/base/path

配置:

$routeProvider
  .when('/path', {
   templateUrl: 'path.html',
});
$locationProvider
  .html5Mode(true);

HTML(注意头部的基本 href)

<html>
  <head>
    <base href="/">
  </head>
  <body>
    <a href="/path">link</a> 
  </body>
</html>