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

标签 javascript node.js

当我加载页面时,

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/

相关文章:

javascript - 使用谷歌地图显示地址位置

javascript - Node 在同步安装后找不到某些模块

node.js - 如何确定平均堆栈应用程序中的登录用户

javascript - 将对象数组转换为已排序的数组数组

javascript - 让 Bootstrap 4 固定导航栏向下滑动并在滚动时变为纯色

javascript - 使用 bootstrap-vue 运行 jest 时出现问题

javascript - React-native:覆盖外部组件的样式

javascript - 如何在 React 中向其他组件传递值

node.js - 如何在项目中使用 npm 包的 fork 版本

javascript - jQuery 存在吗?