2012-12-07 3 views
1

this ticket의 결과를 얻는데 문제가 있습니다. 나는 더 많은 모듈 블록을 만들려고 노력 중이며, 모든 경로와 뷰를 넣고 싶다. 나는 이것에 온 전성 검사가 필요하다.여러 가지 디렉토리에 비취 템플릿을로드 중입니까?

상대 경로를 사용하여 Jade 파일을 가져 오는 경로를 얻을 수 없습니다 (상대 경로가 싫습니다) : Error: Failed to lookup view "../test/app". 제발 도와주세요 :)

Github에서를 : https://github.com/franklovecchio/stackoverflow-13770206

폴더 구조 :

. 
    │ 
    ├── package.json 
    ├── public 
    │ └── lib 
    │  └── login 
    │   ├── 0.0.1 
    │   │ └── routes.coffee 
    │   └── test 
    │    └── app.jade 
    ├── server.coffee 
    └── views 
     └── layout.jade 

server.coffee

express = require('express') 
http = require('http') 
path = require('path') 

app = express() 

app.configure() -> 
    app.set 'port', process.env.PORT or 3000 # Give us the ability to specify port through command-line or external process. 

    app.set 'view options', 
    layout: false 

    app.set 'view engine', 'jade' 

    app.use express.favicon() # auto-gen 
    app.use express.logger('dev') # auto-gen 
    app.use express.bodyParser() # auto-gen 
    app.use express.methodOverride() # auto-gen 

    # Required by session() middleware 
    # Pass the secret for signed cookies 
    app.use express.cookieParser('The Stay Puft Marshmallow Man') 

    app.use app.router 

    app.use express.static(path.join(__dirname, '/public')) # Serve static assets. 

app.configure 'development', -> 
    app.use express.errorHandler() 
    app.use require('readymade').middleware(root: '/public') # Make .coffee/.less serve as compiled .js/.css files. 

# Routes 

# ====================== Login ====================== # 
login = require './public/lib/login/0.0.1/routes' 
app.get '/', login.view 
# ====================== /Login ====================== # 

http.createServer(app).listen app.get('port'), -> 
    console.log 'Express server listening on port: ' + app.get('port') 

routes.coffee

exports.view = (req, res) -> 

    res.render '../test/app' 

app.jade

extends ../../../../views/layout 

p login 

layout.jade

doctype 5 
html 
    head 
    title My title 
    block head 
    body 
    #content 
     block content 

package.json 그것은과 관련이있다

{ 
    "name": "myapp", 
    "description": "modular", 
    "version": "0.0.1", 
    "private": true, 
    "dependencies": { 
    "express":"3.0.4", 
    "less":"", 
    "jade":"", 
    "markitup":"", 
    "readymade": "" 
    } 
} 
+0

일부 GitHub의 저장소 또는 무언가에있는 모든 파일을 넣을 수 있다면 그것은 좋은 것입니다. 각각의 모든 파일을 복사하여 복사하는 것보다 포크하고 작업하는 것이 좋을 것입니다. –

+0

예! 여기 repo가 ​​있습니다 : https://github.com/franklovecchio/stackoverflow-13770206 –

답변

1

디렉토리가 정적 파일 제공 디렉토리가됩니다. server.coffee에서 다음 줄을 제거하면 정상적으로 작동합니다.

app.use express.static(path.join(__dirname, '/public')) # Serve static assets. 

또는 코드와 뷰를 public 디렉토리 외부에 배치하십시오.

+0

시도해 봤어? 그것은 나를 위해 작동하지 않았다. –

+0

예. 그리고 나를 위해 일하고. –

0

routes.coffee

exports.view = (req, res) -> 
    res.render __dirname + '../test/app' 
관련 문제