node_modules中ExpressJS的脚本路径

时间:2014-06-24 22:27:46

标签: node.js express

我的观看次数中有一个index.jade'文件夹中。

doctype html
html
  head
    title= title
    link(rel='stylesheet', href='/stylesheets/main.css')
    script(src='../node_modules/some_package/package_script.min.js')

我的路线文件夹中有一个带路由器的index.js:

router.get('/', function(req, res) {
  res.render('index', { title: 'title goes here' })
});

当我尝试访问控制台中jade文件中的node_modules文件夹时,我一直收到404错误: GET /node_modules/some_package/package_script.min.js 404 1ms - 19b

当我尝试访问node_modules中的脚本时,文件路径的确切工作方式/如何为Express修复它?我是否需要复制必要的javascript文件并将其放在' javascripts'公共'公共'它的工作?

谢谢!

1 个答案:

答案 0 :(得分:17)

哇!等待... node_modules是一个私人目录,不应公开。默认情况下,public目录是静态文件的公共根路径:

app.use(express.static(path.join(__dirname, 'public')));

有一个javascripts目录。将您的脚本复制到那里并将模板中的src属性更改为:

/javascripts/package_script.min.js

如果您真的想提供node_modules,这不是一个好主意,请在上面的app.use(express.static(...));行下添加以下内容:

app.use(express.static(path.join(__dirname, 'node_modules')));