我正在使用来自express-generator的自动生成的布局创建一个简单的节点/快速应用程序:
.
├── app.js
├── bin
│ └── www
├── package.json
├── public
│ ├── images
│ ├── javascripts
│ └── stylesheets
│ └── style.css
├── routes
│ ├── index.js
│ └── users.js
└── views
├── error.jade
├── index.jade
└── layout.jade
在'/ public / javascripts'目录中有一个'gauge-main.js'文件。
此文件在我的'index.jade'文件中引用,该文件位于'/ views'目录中:
extends layout
block head
head
meta(charset='utf-8')
title Index
link(rel='stylesheet', href='/stylesheets/gauge-index.css', type='text/css', media='screen', charset='utf-8')
block body
body
script(src='/public/javascripts/gauge-main.js', type='text/javascript', charset='utf-8')
运行应用程序时,某些'* .css'文件正确链接,但'gauge-main.js'产生404错误:
> ase@0.0.0 start /srv/node/ase
> node ./bin/www
GET / 200 231.694 ms - 424
GET /stylesheets/style.css 200 4.683 ms - 110
Warning: Unexpected block "content" on line 3 of /srv/node/ase/views/error.jade. This block is never used. This warning will be an error in v2.0.0
GET /public/javascripts/gauge-main.js 404 12.587 ms - 154
GET /stylesheets/gauge-index.css 200 13.849 ms - 155
GET /stylesheets/gauge-simple.css 200 2.074 ms - 1025
GET /stylesheets/gauge-small.css 200 1.919 ms - 1014
GET /stylesheets/gauge-grayscale.css 200 1.857 ms - 1039
Warning: Unexpected block "content" on line 3 of /srv/node/ase/views/error.jade. This block is never used. This warning will be an error in v2.0.0
GET /favicon.ico 404 10.821 ms - 154
Warning: Unexpected block "content" on line 3 of /srv/node/ase/views/error.jade. This block is never used. This warning will be an error in v2.0.0
GET /favicon.ico 404 6.519 ms - 154
顺便说一下,请忽略其他404的图标。
我认为,由于'* .css'文件使用相对路径('/ stylesheets / ...')正确链接,因此链接的'gauge-main.js'应该是相同的同样的方式('/javascripts/gauge-main.js')。
有什么想法吗?
答案 0 :(得分:4)
我的猜测是你正在做app.use(express.static(__dirname + '/public'));
,因为你的css服务正确。所以你需要做的就是改变你的脚本' src
值以/javascripts/
而不是/public/javascripts/
开头。