2013-07-03 4 views
3

최근에 express.js를 사용하여 빠른 페이지 응용 프로그램을 만들었습니다. 이것이 실제로 js 프레임 워크였습니다. (사실, 처음 js 프로젝트 였기 때문에 이). 새로운 타이포 그라피 (typography.com) 클라우드 글꼴을 구독하고 있습니다. 공용 폴더에있는 "글꼴"폴더를 찾는 데 문제가 있습니다. 폴더를 추가하고 경로를 지정해야하는 방법이 있습니까?express.js로 공용 폴더 표시하기

여기 내 app.js 파일이다 : 나는 모든 경로를 변경하지 않았

/** 
* Module dependencies. 
*/ 

var express = require('express'), 
    routes = require('./routes'), 
    user = require('./routes/user'), 
    http = require('http'), 
    path = require('path'); 

var app = express(); 

// all environments 
app.set('port', process.env.PORT || 3000); 
app.set('views', __dirname + '/views'); 
app.set('view engine', 'jade'); 
app.use(express.favicon()); 
app.use(express.logger('dev')); 
app.use(express.bodyParser()); 
app.use(express.methodOverride()); 
app.use(app.router); 
app.use(express.static('public')); 

// development only 
if ('development' == app.get('env')) { 
    app.use(express.errorHandler()); 
} 

app.get('/', routes.index); 
app.get('/users', user.list); 

http.createServer(app).listen(app.get('port'), function(){ 
    console.log('Express server listening on port ' + app.get('port')); 
}); 

, 그래서 그들은 단지 기본된다.

app.use(express.static(process.cwd() + '/public')); 

을 그리고 그 public 폴더에 fonts 폴더를 배치 :

+0

코드를 표시 할 수 있습니까? – knshn

답변

12

express.static 설정을 사용하십시오.

+1

나는 그것을 app.js에 추가했고 app.use (express.static (path.join (__ dirname, 'public'))) 행을 대체했다)); (나는 두 가지 방법 모두 시도했다.)하지만 둘 다 대중에서 폰트 폴더를 찾을 수 없었고, 스타일 시트 폴더에 넣어 두었다. – Spentacular

+0

수신 대기중인 포트에서 프록시 또는 액세스 노드 프로세스를 직접 사용합니까? – moka

+0

(죄송합니다. 이해가 잘 안되요). 내가 한 일은 web : node app.js를 Procfile에 추가하여 heroku에서 호스트 할 수있게하는 것뿐입니다. 그 외, 기본 템플릿과 스타일 시트를 수정했습니다. – Spentacular

3

당신에게 Heroku를 사용하는 경우,이 스레드를보고 할 수 있습니다 : Deploy Nodejs on Heroku fails serving static files located in subfolders

남자 설명 그의 package.json에 NPM의 마지막 버전을 지정할 때까지 그는 "__dirname"고생 것을 :

그래도 문제가 해결되지 않으면
"engines": { 
    "node": "0.10.11", 
    "npm": "1.2.25" 
} 

, 당신은 시도 할 수 있습니다 : 대신 "__dirname"

// At the top of your web.js 
process.env.PWD = process.cwd() 

// Then 
app.use(express.static(process.env.PWD + '/public')); 

을3210

비록 당신이 벌써 투쟁하는 지역이라면 모두 쓸모가 없을 것입니다.

+0

남자, 나는 그것을 선언하지 않았지만 슬프게도 나는 그것을 로컬로 작업 할 수 없습니다.거의 노드 사용을 멈추거나 대신 typekit을 사용해야합니다./ – Spentacular

+0

노드 문제가 발생하지 않습니다./fonts/dir에 파일을 넣고 브라우저에서 직접 해당 파일을 탐색 할 수 있습니까? 그 작동하고, 다음 공용 정적 파일이 완벽하게 작동하고, 그들을 참조하는 방법에 문제가있는 경우. – moka