我使用express来创建一个简单的应用程序。我使用把手编写了我的模板,看起来像这样:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" lang="english">
<title>{{ title }} </title>
</head>
<body>
{{{body}}}
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script src="js/my.js"></script>
</body>
</html>
问题是,如果用户访问404页面,则链接到站点中断中的每个静态资产。我找到的唯一解决方案是将链接硬编码到这样的静态文件:
<script src="http://localhost:3000/js/my.js"></script>
显然,这不是推荐的方法。你们怎么解决这个问题? 我来自Django背景,它确实提供了一种连接静态内容的一致且简单的方法。我们在快递(或把手)中有类似的东西。
由于
答案 0 :(得分:1)
更改此行
<script src="js/my.js"></script>
到
<script src="/js/my.js"></script>
目前,您正在寻找与当前页面相同的文件夹中的my.js
文件(相对路径)。
例如,如果您的页面存在于:
http://localhost:3000/myroute/mypage
它会查找javascript文件
http://localhost:3000/myroute/js/my.js
通过将其更改为/js/my.js
,它将指向站点的根目录(绝对路径):
http://localhost:3000/js/my.js