我的“ 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/