Express 多网站服务器端

Express 多网站服务器端,express,Express,使用我的express服务器,我可以提供来自两个文件夹A和B的静态文件: -根/ --静态 ---A/ ---B/ 问题是,当有人调用example.com/static/A/index.html时,如果index.html包含绝对路径,它将在服务器的根目录中获取它们 更准确地说: 如果index.html包含src=“main.js”,它将调用example.com/static/A或B/main.js。 如果index.html包含src=“/main.js”,它将调用example.com

使用我的express服务器,我可以提供来自两个文件夹A和B的静态文件:
-根/
--静态
---A/
---B/

问题是,当有人调用example.com/static/A/index.html时,如果index.html包含绝对路径,它将在服务器的根目录中获取它们

更准确地说:
如果index.html包含src=“main.js”,它将调用example.com/static/A或B/main.js。
如果index.html包含src=“/main.js”,它将调用example.com/main.js


是否可以修改第二个行为来解析/as/static/A或B/而不编辑静态文件?

我通过使用子域找到了一个解决方案:

let filesPath=path.join(_dirname,../files'))
应用程序集('子域偏移量',1)
应用程序使用(“/”,函数(req,res,next){
if(req.subdomains.length!=1){
下一个()
}
req.url[0]='..//将'/'替换为'.'
req.url=req.subdomains[0]+req.url
下一个()
})

app.use('/',express.static(filepath))
我通过使用子域找到了一个解决方案:

let filesPath=path.join(_dirname,../files'))
应用程序集('子域偏移量',1)
应用程序使用(“/”,函数(req,res,next){
if(req.subdomains.length!=1){
下一个()
}
req.url[0]='..//将'/'替换为'.'
req.url=req.subdomains[0]+req.url
下一个()
})

app.use('/',express.static(filepath))
您可以编辑嵌套的静态索引页吗?如果是,请更新其中的路径。@TedFitzpatrick您的意思是用正则表达式替换路径?它应该可以工作,但我想知道是否有一个解决方案,我不修改静态文件。这是因为您使用绝对路径,而不包括文件夹。你真的做过
app.use(express.static('./')?这可能会导致许多问题issues@LawrenceCherone是的,例如,如果我在index.html中用main.js替换/main.js,一切都正常,但我正在努力使它在这两种情况下都正常工作。编写绝对路径,就会得到绝对路径的行为。用相对路径替换所有绝对路径是最简单、最干净、最直接和最全面的解决方案。(如果所有路径都是相对的,并且希望它们的行为类似于绝对路径,则可以使用。)是否可以编辑嵌套的静态索引页?如果是,请更新其中的路径。@TedFitzpatrick您的意思是用正则表达式替换路径?它应该可以工作,但我想知道是否有一个解决方案,我不修改静态文件。这是因为您使用绝对路径,而不包括文件夹。你真的做过
app.use(express.static('./')?这可能会导致许多问题issues@LawrenceCherone是的,例如,如果我在index.html中用main.js替换/main.js,一切都正常,但我正在努力使它在这两种情况下都正常工作。编写绝对路径,就会得到绝对路径的行为。用相对路径替换所有绝对路径是最简单、最干净、最直接和最全面的解决方案。(如果所有路径都是相对的,并且希望它们的行为类似于绝对路径,则可以使用。)