ExpressJS中的子例程没有为JS和CSS提供HTNL
我终于找到了与expressJS合作的Fideling。我已经编写了一个简单的RestAPI,还想提供一些静态HTML,这些HTML(通过客户端JavaScript)使用我的RestAPI RestAPI工作正常,但在某些子例程上,CSS和JS文件在错误的URL下查找 我有以下目录设置:ExpressJS中的子例程没有为JS和CSS提供HTNL,express,static,routes,Express,Static,Routes,我终于找到了与expressJS合作的Fideling。我已经编写了一个简单的RestAPI,还想提供一些静态HTML,这些HTML(通过客户端JavaScript)使用我的RestAPI RestAPI工作正常,但在某些子例程上,CSS和JS文件在错误的URL下查找 我有以下目录设置: src |---models |---controllers |---views |---css |---main.css |---js |---co
src
|---models
|---controllers
|---views
|---css
|---main.css
|---js
|---core.js
|---html
|---login.html
|---payments.html
|---static
这两个HTML文件都使用
<script src="core.js" type="text/javascript"></script>
现在奇怪的是,如果我调用myserver.com/,登录页面会显示所有样式和JS功能,但是如果我打开myserver.com/path1/path2 ExpressJS,它会尝试查找myserver.com/path1/(例如myserver.com/path1/main.css)下的文件,而不是myserver.com/main.css
不起作用的HTML(通过/path1/path2路径发送)如下所示:
<!DOCTYPE html>
<html lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" href="main.css"/>
<title>Greatpay login</title>
</head>
<body data-pagetype="login">
<header class="header">
<img src="logo.png"/>
</header>
<div class="body">
<div class="loginbox">
<span class="error"></span>
<div class="fieldline">
<span>Organisation:</span>
<input type="text" name="organisation"/>
<div class="clear"><!---clear---></div>
</div>
<div class="fieldline">
<span>Environment:</span>
<select name="environment"/>
<option value="TEST">Test</option>
<option value="PROD" selected="selected">Production</option>
</select>
<div class="clear"><!---clear---></div>
</div>
<div class="fieldline">
<span>Username:</span>
<input type="text" name="username"/>
<div class="clear"><!---clear---></div>
</div>
<div class="fieldline">
<span>Password:</span>
<input type="password" name="password"/>
</div>
<button id="login">Login</button>
</div>
</div>
<footer>
<script src="jquery-3.4.1.min.js" type="text/javascript"></script>
<script src="core.js" type="text/javascript"></script>
</footer>
</body>
</html>
Greatpay登录
组织:
环境:
试验
生产
用户名:
密码:
登录
谁能帮我解决这个问题,解释一下为什么会这样
提前谢谢。您可以在使用资产的地方共享html文件的代码吗?好的,我已经添加了html。正如我所看到的,您在添加前缀
view
时设置了视图文件夹,但是在静态文件夹定义时您在前缀“src”。我想你应该看看这个……我也这么认为,但是当我在src/view前面加前缀而不是view时,它会在sr/src/view前面加前缀。顺便说一句,我在heroku上托管。你有相对路径,我想你需要绝对路径
<!DOCTYPE html>
<html lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" href="main.css"/>
<title>Greatpay login</title>
</head>
<body data-pagetype="login">
<header class="header">
<img src="logo.png"/>
</header>
<div class="body">
<div class="loginbox">
<span class="error"></span>
<div class="fieldline">
<span>Organisation:</span>
<input type="text" name="organisation"/>
<div class="clear"><!---clear---></div>
</div>
<div class="fieldline">
<span>Environment:</span>
<select name="environment"/>
<option value="TEST">Test</option>
<option value="PROD" selected="selected">Production</option>
</select>
<div class="clear"><!---clear---></div>
</div>
<div class="fieldline">
<span>Username:</span>
<input type="text" name="username"/>
<div class="clear"><!---clear---></div>
</div>
<div class="fieldline">
<span>Password:</span>
<input type="password" name="password"/>
</div>
<button id="login">Login</button>
</div>
</div>
<footer>
<script src="jquery-3.4.1.min.js" type="text/javascript"></script>
<script src="core.js" type="text/javascript"></script>
</footer>
</body>
</html>