2

私の jade テンプレートは、ブートストラップ アセットを見つけることができません。次の 404 がスローされます。(/loadMedia は、成功した layout.jade をロードするために呼び出されるルートです。)

私は何を間違っていますか?

GET /loadMedia 200 19ms - 572
GET /assets/js/jquery-1.8.3.min.js 404 2ms
GET /assets/css/bootstrap.min.css 404 2ms
GET /assets/js/bootstrap-dropdown.js 404 1ms
GET /assets/js/bootstrap.min.js 404 2ms
GET /assets/js/bootstrap.js 404 3ms

App.configure:

app.configure(function(){
  app.set('port', process.env.PORT || 3000);
  app.set('views', __dirname + '/views/templates');
  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(__dirname, 'public'));
});

私のフォルダ構造:

.
├── README.md
├── app.js
├── node_modules
│   ├── express
│   ├── jade
│   └── mongodb
├── package.json
├── routes
└── views
    ├── assets
    │   ├── css
    │   │   ├── bootstrap-responsive.css
    │   │   ├── bootstrap-responsive.min.css
    │   │   ├── bootstrap.css
    │   │   └── bootstrap.min.css
    │   ├── img
    │   └── js
    │       ├── bootstrap-dropdown.js
    │       ├── bootstrap.js
    │       ├── bootstrap.min.js
    │       └── jquery-1.8.3.min.js
    └── templates
        ├── layout.jade
        └── loadMedia.jade

ここに私のlayout.jadeがあります:

!!! 5
html
    head
    script(type="text/javascript", src="../assets/js/jquery-1.8.3.min.js")
    script(type='text/javascript', src='../assets/js/bootstrap.js')
    script(type='text/javascript', src='../assets/js/bootstrap.min.js')
    script(type='text/javascript', src='../assets/js/bootstrap-dropdown.js')
    link(rel='stylesheet', type='text/css', href='../assets/css/bootstrap.min.css')
    style
        body
        {
        padding-top: 40px;
        padding-bottom: 40px;
        background-color: #f5f5f5;
        }
        .search-query
        {
        margin-top: 5px;
        margin-right: 2px;
        }
4

1 に答える 1

3

assets フォルダーをパブリック フォルダーに配置し、先頭の "../" をスクリプト src 参照から削除します。

「パブリック」フォルダーがない場合は、構成で既に参照しているため、作成してください。ビューとルートがあるのと同じ場所であるアプリケーションのルートに作成します。

その回線設定が適切かどうかわからない場合は、これに変更してみてください。

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

次に、スクリプト参照も変更する必要があります。

 script(type="text/javascript", src="../assets/js/jquery-1.8.3.min.js")

する必要があります

 script(type="text/javascript", src="assets/js/jquery-1.8.3.min.js")
于 2013-01-05T02:01:55.440 に答える