AngularJSを使用するアプリがあります。ここにそのリンクがあります- Angular App ナビゲーションバーのすべてのリンクはデフォルトを使用していますangular router。すべてのページは私がそれらを更新すると正常に動作しますが、ページlike this 更新または直接移動するときに、cssとjsなしでコンテンツをロードします。
確かではありませんが、ルーティングの問題だと思います。これがapp.js
ファイルです-
angular
.module('jobSeekerApp', [
'ngRoute'
])
.config(function ($routeProvider, $locationProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/main.html',
controller: 'MainCtrl',
controllerAs: 'main'
})
.when('/about', {
templateUrl: 'views/about.html',
controller: 'AboutCtrl',
controllerAs: 'about'
})
.when('/companies', {
templateUrl: 'views/companiesall.html',
controller: 'CompaniesallCtrl',
controllerAs: 'companies'
})
.when('/jobs', {
templateUrl: 'views/jobsall.html',
controller: 'JobsallCtrl',
controllerAs: 'jobs'
})
.when('/companies/:id', {
templateUrl: 'views/company.html',
controller: 'CompanyCtrl',
controllerAs: 'company'
})
.when('/contact', {
templateUrl: 'views/contact.html',
controller: 'ContactCtrl',
controllerAs: 'contact'
})
.otherwise({
redirectTo: '/'
});
$locationProvider.html5Mode(true);
$locationProvider.hashPrefix = '!';
});
これはindex.html
の頭です-
<head>
<meta charset="utf-8">
<title>Job Seeker</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width">
<!-- Place favicon.ico and Apple-touch-icon.png in the root directory -->
<!-- build:css(.) styles/vendor.css -->
<!-- bower:css -->
<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css" />
<link rel="stylesheet" href="bower_components/animate.css/animate.css" />
<link rel="stylesheet" href="bower_components/jssocials/dist/jssocials.css" />
<link rel="stylesheet" href="bower_components/jssocials/dist/jssocials-theme-flat.css" />
<!-- endbower -->
<!-- endbuild -->
<!-- build:css(.tmp) styles/main.css -->
<link rel="stylesheet" href="/styles/main.css">
<!-- endbuild -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
<link href="https://fonts.googleapis.com/css?family=Bungee|Carrois+Gothic+SC|Oswald" rel="stylesheet">
<base href="/">
</head>
皆さんの助けに感謝します、私は別の質問で実際の問題を見つけました。 <base href="/">
の先頭にある他のリンクの上にindex.html
。これが正しい答えへの link です。だから今index.html
は次のようになります
<head>
<meta charset="utf-8">
<title>Job Seeker</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width">
<base href="/">
<!-- Place favicon.ico and Apple-touch-icon.png in the root directory -->
<!-- build:css(.) styles/vendor.css -->
<!-- bower:css -->
<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css" />
<link rel="stylesheet" href="bower_components/animate.css/animate.css" />
<link rel="stylesheet" href="bower_components/jssocials/dist/jssocials.css" />
<link rel="stylesheet" href="bower_components/jssocials/dist/jssocials-theme-flat.css" />
<!-- endbower -->
<!-- endbuild -->
<!-- build:css(.tmp) styles/main.css -->
<link rel="stylesheet" href="/styles/main.css">
<!-- endbuild -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
<link href="https://fonts.googleapis.com/css?family=Bungee|Carrois+Gothic+SC|Oswald" rel="stylesheet">
</head>
Html5履歴モードを使用しているため、cssファイルとjsファイルを読み込めません。あなたはCSSとJSファイルをロードできるようにindex.htmlを提供するためにURLリライターを使用する必要があり、ハッシュなしでURLを持つことができます。
注:-
ページを更新しない限り、それに気付くことはありません。あなたが更新ボタンを押してCSSとJSなしで静的HTMLページを提供するまで、すべてが機能します
html-historyモードを使用するとどうなりますか?
あなたはリクエストを出し、angularがそのリクエストに反応する前に、サーバーがexample.htmlファイルを見つけてそれを提供し、そのファイルに含まれているcssまたはjsファイルがありません。すべてのtheeファイルは、index.html以降を提供し続けることをサーバーに通知する必要がありますangularは、ng-viewに表示され、すべてのcssを持つ、要求されたページにリダイレクトしますおよびjsファイル。
サーバー側(Source Angularのドキュメント)
このモードを使用するには、サーバー側でURLを書き換える必要があります。基本的に、アプリケーションのエントリポイント(index.htmlなど)へのすべてのリンクを書き換える必要があります。 AngularでアプリケーションのベースとなるURLの部分とアプリケーションで処理する必要のあるパスを区別できるので、この場合もタグが必要です。