2

我的玉模板找不到引导资产。它抛出以下 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(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

将您的资产文件夹放在公用文件夹中,并从脚本 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 回答