如何将外部javascript文件使用到ejs文件中
我在一个新的门户网站工作。到目前为止,使用express和node.js,我有一个服务器和一些ejs文件 我的站点的主体结构如下所示:如何将外部javascript文件使用到ejs文件中,javascript,node.js,express,ejs,Javascript,Node.js,Express,Ejs,我在一个新的门户网站工作。到目前为止,使用express和node.js,我有一个服务器和一些ejs文件 我的站点的主体结构如下所示: - node modules - public --javascript ---myScript.js -views --pages ---index.ejs ---about.ejs --partials ---footer.ejs
- node modules
- public
--javascript
---myScript.js
-views
--pages
---index.ejs
---about.ejs
--partials
---footer.ejs
---head.ejs
---header.ejs
package.json
server.js
server.js
和index.ejs
我正在尝试调用head.ejs(或index.ejs)中的外部js
MyPortal
正文{padding top:50px;}
但我(在控制台中)遇到了这个错误
为具有源的加载失败”http://localhost:8080/pubic/javascript/myScript.js”.
知道为什么会发生这种情况以及如何解决它吗?因为您正在尝试加载客户端JavaScript,所以使用EJS的事实是无关紧要的。模板中只需要一个标准的HTML脚本元素,您就可以使用它了 但是,您确实需要提供一个URL(带有src属性),web浏览器可以使用该URL获取脚本……而您的脚本没有URL 您正在获取源代码为的加载失败的消息。“http://localhost:8080/pubic/javascript/myScript.js“,因为这是一个404错误 您应该使用提供JS文件的URL
app.use("/public", express.static('public'))
将其添加到server.js文件中, 应用程序使用(express.static(uu dirname+“/public”)
要将js文件与您的ejs文件链接起来,
public
输入错误public
是的,我只是显示它…我将它更改为“public”,但问题仍然存在。您能否在浏览器中打开脚本的url,看看它是否显示任何内容?type=“text/javascript”
不应在HTML 5中使用。它除了允许您输入错误和打断脚本之外没有其他用途。niko尝试添加此app.use(express.static(path.join(u dirname,'public'));
在设置视图引擎后。您还需要路径模块var path=require('path'));
我理解你的意思。但是即使在我的server.js文件中使用“app.use(“/public”,express.static('public')”),我仍然看到脚本不能被删除的错误loaded@NikosKalantas看起来像是在使用jQuery。如果是这样,请在html中链接jQuery cdn(最好在正文末尾)以及jquery链接标记之后的脚本标记(重要)
<html lang="en">
<head>
<% include ../partials/head %>
</head>
<body class="container">
<header>
<% include ../partials/header %>
</header>
<main>
<div class="jumbotron">
<h1>MyPortal</h1>
<button>Press</button>
<% var test = 101; %>
</div>
</main>
<footer>
<% include ../partials/footer %>
</footer>
</body>
</html>
$(function() {
$("button").on("click", function () {
console.log("button pressed");
});
});
<!-- views/partials/head.ejs -->
<meta charset="UTF-8">
<title>MyPortal</title>
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<style>body { padding-top:50px; } </style>
<script type="text/javascript" src="/pubic/javascript/myScript.js"></script>
Loading failed for the <script> with source “http://localhost:8080/pubic/javascript/myScript.js”.
app.use("/public", express.static('public'))