当我加载页面时,
What is up
显示,但 script.js 中的“Hello World”却没有显示。 有什么帮助吗?目录如下所示
project
|
+-- node modules
|
+-- javascript
| |
| +-- script.js
|
+-- views
| |
| | +-- index.ejs
|
+-- server.js
|
+-- package.json
index.ejs 文件
<html lang="en">
<head>
<meta charset="utf-8">
<title>Index</title>
<meta name="description" content="Index">
</head>
<body>
<h1>What is up?</h1>
<div id = "container">
</div>
</body>
<script src = "javascript/script.js">
// var container = document.getElementById("container");
// var content = document.createTextNode("Hello, World!");
// container.appendChild(content);
</script>
</html>
脚本中注释掉的代码正是 script.js 文件中包含的代码。如果我取消注释并让代码在 ejs 文件中运行,它就可以工作。只是不在外部 script.js 中
server.js 文件
const express = require('express')
const app = express()
app.set('view-engine', 'ejs')
app.use(express.static('project/javascript'))
app.get('/', (req, res) => {
res.render('index.ejs')
})
app.listen(3000)
最佳答案
如果将 src
属性更改为绝对路径,则应该可以正常工作:
<script src="/script.js"></script>
请注意,我已从网址中删除了 /javascript
子文件夹,因为这是不正确的。您还应该将子文件夹传递给 express.static
,即:
app.use(express.static('javascript'));
关于javascript - 为什么我的脚本文件在index.ejs 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64366248/