2
Node.js, Express 및 AngularJS를 사용하여 웹 앱을 개발 중입니다.다른 경로보다 먼저 자산을 처리하십시오.
public
폴더에서 프런트 엔드 자바 스크립트를 제공하고 있습니다 (예 : HTTP GET /lib/angular/angular.min.js
은 아마 AngularJS JavaScript를 반환합니다. 나는 모든 요청을 브라우저의 각도 라우터에 의해 처리 얻을 원하는
그러나, 나는 다음과 같이 포괄 경로가 정의되어 있습니다
app.get('/*', function(req, res) { res.send('template.jade'); });
문제이 경로는보다 우선이다 정적 자산 라우팅이있는 경우에도 항상이 실행됩니다.
사용자 정의 경로가 전파되기 전에 Express에 정적 자산을 처리하도록 지시 할 수 있습니까? 아마도이 문제를 피할 수있는 영리한 방법이 있습니까? 다음과 같이
익스프레스 구성은 다음과 같습니다
// Generated by CoffeeScript 1.7.1
(function() {
var ExpressConfig, crypto, express, path, pkg;
crypto = require('crypto');
express = require('express');
path = require('path');
pkg = require('../package');
ExpressConfig = (function() {
function ExpressConfig() {}
ExpressConfig.prototype.configure = function(ENV) {
var APP_ROOT, app;
APP_ROOT = path.join(__dirname, '../');
app = express();
app.set('port', pkg.config.port);
app.set('views', APP_ROOT + 'webapp');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(express.cookieParser(crypto.randomBytes(20).toString('hex')));
app.use(express.session());
app.use(app.router);
app.use(require('stylus').middleware(APP_ROOT + 'public'));
app.use(express["static"](APP_ROOT + 'public'));
if (ENV === 'development') {
app.use(express.errorHandler());
}
return app;
};
return ExpressConfig;
})();
module.exports = ExpressConfig;
}).call(this);
//# sourceMappingURL=express-config.map
-
나는 내가를 확인하기 위해 각 장소에 로그인하여 확인 것처럼 구성이, 캐치 - 모든 경로를 정의하기 전에 실행되는 것을 확인할 수 있습니다
주문.
catch-all 경로를 제거 할 때 자산 구성이 작동하는지 확인할 수도 있습니다.
정적 미들웨어를 선언 할 줄이 * 전에 *이 경로인지 확인하십시오. –
익스프레스 정적 구성 *은 사용자 정의 라우트가 정의되기 전에 실행됩니다. – whirlwin
정적 미들웨어가 정의 된 코드를 게시 할 수 있습니까? –