私は最近問題に遭遇しました。つまり、yeoman と gulp を介してフロントエンドを作成するときに、コード内で相対パスが直接書き込まれます。問題は、コードをパッケージ化して公開した後、相対パスを参照する HTML が見つからず、404
というプロンプトが表示されます。gulp を勉強した後、build.js で、一致する HTML ファイルについて記述されたコードが圧縮されていることがわかりました。それらは一致します すべての HTML ファイルは、angularTemplatecatch プラグインを通じて templateCatchHtml.js ファイルに圧縮されます
コードは次のとおりです
gulp.task('partials', function () { return gulp.src([ path.join(conf.paths.src, '/app/**/*.html'), path.join(conf.paths.tmp, '/serve/app/**/*.html') ]) .pipe($.minifyHtml({ empty: true, spare: true, quotes: true })) .pipe($.angularTemplatecache('templateCacheHtml.js', { module: 'webapp', root: 'app' })) .pipe(gulp.dest(conf.paths.tmp + '/partials/'));});
つまり、プログラム内でパッケージ化されたテンプレートの ID を直接使用して、対応するhtml
なので、コード内で相対パスを使用しているHTMLを、生成されたテンプレートコードのテンプレートIDに変更します
このようにして、パッケージ化後もdistが正常に使用できるようになります。