我的“ View ”文件夹中有一个 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 文件并将它们放在“public”下的“javascripts”文件夹下才能工作?

谢谢!

最佳答案

哇!稍等... node_modules 是私有(private)目录,不应公开。默认情况下,public 目录是静态文件的公共(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')));

关于node.js - node_modules 中 ExpressJS 的脚本路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24397379/

10-12 23:50