1

このチケットの結果を機能させるのに問題があります。より多くのモジュラーブロックのコードを作成しようとしているだけで、ルートとビューをすべてまとめたいと思っています。これについては健全性チェックが必要です。

相対パスを使用して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')

ルート。コーヒー

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": ""
  }
}
4

2 に答える 2

1

それはpublicあなたの静的ファイル提供ディレクトリであるディレクトリと関係があります。次の行をから削除するserver.coffeeと、正常に機能します。

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

publicまたは、コードとビューをディレクトリの外に配置します。

于 2012-12-12T19:08:36.510 に答える
0

ルート。コーヒー

exports.view = (req, res) ->
  res.render __dirname + '../test/app'
于 2012-12-18T13:13:10.510 に答える