私の Angular アプリでは、ユーザーがリンクをクリックしたときにインデックス ページに読み込まれるパーシャルをレンダリングしようとしています。次のコードで以前はうまくいきました:
//app.js in Angular
angular.module('myApp', [
'ngSanitize',
'ngRoute',
...
]).
config(['$routeProvider', '$locationProvider', '$sceDelegateProvider', function($routeProvider, $locationProvider, $sceDelegateProvider) {
$routeProvider.when('/view1', {templateUrl: 'partials/partial1.html', controller: 'MainController'});
$routeProvider.when('/File/:fileID', {templateUrl: 'partials/currentFile.html', controller: 'FileController', controllerAs: 'file'});
$routeProvider.otherwise({redirectTo: '/view1'});
$sceDelegateProvider.resourceUrlWhitelist([
'self',
'https://www.url.com/**']);
$locationProvider.html5Mode(true);
}]);
しかし、Express を追加すると機能しません。
var express = require("express");
var logfmt = require("logfmt");
var app = express();
app.use(logfmt.requestLogger());
app.use(express.static(__dirname + '/app'));
app.use('/bower_components', express.static(__dirname + '/bower_components'));
app.get('*', function(req, res) {
res.sendfile('./app/index.html');
});
インデックスページを表示したいだけなら、これでうまくいきます。ただし、次のコードを追加すると、(部分的な) プレーンな HTML が表示されますが、CSS や Javascript は表示されません。
app.get('/partials/currentFile.html', function(req, res) {
res.render('./app/partials/currentFile.html');
});
Angular で動作するように Express でパーシャルをレンダリングするにはどうすればよいですか? get()、render、sendfile の Express API を調べてみましたが、私の状況ではあまり役に立ちませんでした。他のユーザーは以前にここで同様の質問をしましたが、通常、Express がルーティングする別のファイルが関係しています。Express を含めるファイルを追加するだけで既に問題が発生しているため、余分なファイルを追加せずにそれを実行できるかどうか疑問に思っています。
currentFile.html は、CSS または Javascript 自体をロードしません。Express を追加する前は、すべてのエクストラをロードした index.html にロードされたパーシャルでした。
どんな助けでも大歓迎です。ありがとうございました