web-dev-qa-db-ja.com

PhantomJSを使用してAngualrJSサイトを事前レンダリングすると、「モジュールngSanitizeのインスタンス化に失敗しました」

PhantomJSを使用してAngularJSサイトを事前レンダリングしようとしています。 ( http://www.yearofmoo.com/2012/11/angularjs-and-seo.html のphantomjs-runner.jsを使用)エラーとしてPhantomJSを介してページを読み込めません以下が発生します。このエラーはIE/Chrome/Firefoxでは発生しません。

このエラーを修正するにはどうすればよいですか?

エラー:

Error: [$injector:modulerr] Failed to instantiate module SpaceForAfrica due to:
Error: [$injector:modulerr] Failed to instantiate module dialogs due to:
Error: [$injector:modulerr] Failed to instantiate module ngSanitize due to:
Error: [$injector:nomod] Module 'ngSanitize' is not available! You either misspelled the module name or forgot to load it. If registering a
module ensure that you specify the dependencies as the second argument.
http://errors.angularjs.org/1.2.1/$injector/nomod?p0=ngSanitize
    at http://ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular.js:1507
    at ensure (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular.js:1435)
    at module (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular.js:1717)
    at http://ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular.js:3527

モジュール構成

var SpaceForAfrica = angular.module('SpaceForAfrica', ['ngRoute', 'HashBangURLs', 'ui.bootstrap', 'ui.bootstrap.tpls', 'google-maps', 'ui.growl', 'dialogs', 'ngSanitize', 'angularSpinner','angulartics', 'angulartics.google.analytics']).config(spaceForAfricaConfig);
9

NgSanitizeコードへの参照が欠落している可能性があります。 ngSanitizeはAngularJSフレームワークの一部です( https://docs.angularjs.org/api/ngSanitize )、ただし、前に別の参照を含める必要がありますPhantomJSリファレンスを利用するために。

AngularJSのバージョン1.2.1を使用しているようですので、これらのタグの1つを簡単に追加できます(またはコードを取得して独自のアプリに含めることができます)。

縮小されていない:

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular-sanitize.js"></script>

縮小:

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular-sanitize.min.js"></script>
17
trojas