Node.js 使用Express时影响静态文件服务的Url

Node.js 使用Express时影响静态文件服务的Url,node.js,express,Node.js,Express,我的一个页面的url为“/artist/somename”,当该页面被提供时,会出现href为“images/somename/1.jpg”的图像。当请求图像时,将使用url“/artist/images/somename/1.jpg”请求它们,这意味着服务器在查找图像资产时无法找到它们 我已经设置了express应用程序,以便 app.use(express.static(path.join(__dirname, 'public')) 图像存储在“public/images/…”中 如果您不

我的一个页面的url为“/artist/somename”,当该页面被提供时,会出现href为“images/somename/1.jpg”的图像。当请求图像时,将使用url“/artist/images/somename/1.jpg”请求它们,这意味着服务器在查找图像资产时无法找到它们

我已经设置了express应用程序,以便

app.use(express.static(path.join(__dirname, 'public'))
图像存储在“public/images/…”中


如果您不希望图像URL依赖于它们所在页面的URL,那么请不要使用路径相关URL。仅使用以
/
开头的根相对URL

例如,将href设为:
href='/images/somename/1.jpg'


如果URL不是以
/
开头,那么浏览器将从URL获取路径并将其预发送到您的URL,这就是它将向服务器请求的内容。因此,如果没有
/
,浏览器从服务器请求的URL将因托管页面而异。

如果您不希望图像URL依赖于其托管页面的URL,则不要使用路径相对URL。仅使用以
/
开头的根相对URL

例如,将href设为:
href='/images/somename/1.jpg'


如果URL不是以
/
开头,那么浏览器将从URL获取路径并将其预发送到您的URL,这就是它将向服务器请求的内容。因此,如果没有
/
,浏览器从服务器请求的URL将根据托管页面的不同而有所不同。

您可以将图像移动到子文件夹中:
public/artist/images
。。。否则,我建议调整
img
标记的
href
属性中的URL,使其不使用相对URL,而是使用绝对URL:
href=“/images/somename/1.jpg”
您只需将图像移动到子文件夹:
public/artist/images
。。。否则,我建议调整
img
标记的
href
属性中的URL,使其不使用相对URL,而是使用绝对URL:
href=“/images/somename/1.jpg”
这对我非常有用,谢谢。在URL中使用参数将我的css文件的服务搞砸了,这就是问题所在。这对我非常有用,谢谢。在URL中使用参数将我的css文件的服务搞砸了,这就是问题所在。