为什么我的脚本文件在 index.ejs 中不起作用?



当我加载页面时显示,但";Hello World"来自script.js的。有什么帮助吗?

目录看起来像这个

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文件中运行,它就可以工作了。只是如果在外部脚本.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>

请注意,我已经从url中删除了/javascript子文件夹,因为这是不正确的。您还应该将子文件夹传递给express.static,即:

app.use(express.static('javascript'));

最新更新