为什么玉不能找到我的资源?

时间:2013-01-05 01:54:04

标签: pug directory-structure

我的jade模板找不到bootstrap资产。它抛出以下404s。 (/ 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;
        }

1 个答案:

答案 0 :(得分:3)

将您的资源文件夹放在公共文件夹中,并从脚本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")