微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当我更改服务器 index.html 文件的方式时,哪些路径不起作用?

如何解决当我更改服务器 index.html 文件的方式时,哪些路径不起作用?

我最近决定更新我提供 index.html 文件的方式

app.use('/',express.static(__dirname + '/..')); 

app.get('/',function(req,res) {
  res.sendFile(path.join(__dirname + '/../index.html'));
});

两者都可以正常工作,因为它们都可以正确地为我的 index.html 文件提供服务。但是,当我切换到使用 app.get ...

我无法再在 index.html 文件中使用我的路径。

例如,我的 index.html 文件中有一个 .svg 文件,其作用如下:

<img src="dist/images/svg/favicon.svg" width="128" height="128">

现在失败的请求(404 错误)在控制台中看起来像这样:

http://localhost:3000/dist/images/svg/favicon.svg

我尝试在根目录中添加如下:

<img src="ll-server/dist/images/svg/favicon.svg" width="128" height="128">

但这无济于事 - 两者都会给出 404 错误

为什么更改我提供 index.html 文件的方式会破坏我在 index.html 文件中的路径?

我该如何解决这个问题?

解决方法

为什么更改我提供 index.html 文件的方式会破坏我在 index.html 文件中的路径?

use 为每个以指定路径开头的 URL 运行一些代码。该代码 (static) 查看 URL,在指定路径上找到匹配的文件,并提供该文件。

get 为特定 URL 运行一些 for(至少在这种情况下,因为您没有使用 * 或参数)并且该代码提供 index.html 并且仅 {{ 1}}。

您的图片已停止工作,因为您删除了提供 HTML 的代码以及仅提供 HTML 代码的图片。

我该如何解决这个问题?

将代码恢复原样。您所做的更改不合理。

——-

然后解决您的安全问题。

如果您的 JS 模块所在的目录,您提供静态文件的目录就是父目录。这意味着您已经在您的网络服务器上提供了您的 JS 模块(可能还有您所有的 JS 模块)的 URL。

不要暴露您的服务器端业务逻辑。

更改您的目录结构。一个典型的是:

index.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。