javascript - 在 Heroku 上使用 Express 时出现 Slick Slider 错误
问题描述
我在使用 Slick Slider 并在不同情况下遇到不同类型的错误时遇到了一些问题。
一切都按我的意愿工作,但仅限于本地,我正试图用$ git push heroku master
命令将它推到 Heroku 上。
我创建了一个文件夹,然后运行以下命令
1. npm init
2. git init
3. npm i -S express ejs
文件夹包含:
- index.html
- app.js
- package.json
- package-lock.json
- views
-- index.ejs
- public
-- css
--- slick.css
--- styles.css
-- js
--- slick.min.js
-- images
--- (full of images)
这是我在 ejs 模板中的头
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>bg design</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet"href="https://use.fontawesome.com/releases/v5.11.2/css/all.css">
<link rel="stylesheet" href="/css/slick.css">
<link rel="stylesheet" href="/css/styles.css">
</head>
这是身体的尽头
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script type="text/javascript" src="/js/slick.min.js"></script>
<script>
$(document).ready(function(){
$('.multiple-items').slick({
prevArrow: '.arrow_prev',
nextArrow: '.arrow_next',
slidesToShow: 3,
autoplay: true,
arrows: true,
autoplaySpeed: 5000,
centerMode: true,
speed: 500,
swipeToSlide: true,
cssEase: 'linear',
responsive: [
{
breakpoint: 600,
settings: {
slidesToShow: 2,
centerMode: true,
centerPadding: '40px',
prevArrow: 'false',
nextArrow: 'false',
slidesToScroll: 2
}
},
{
breakpoint: 480,
settings: {
slidesToShow: 1,
centerMode: true,
prevArrow: 'false',
nextArrow: 'false',
centerPadding: '40px',
slidesToScroll: 1
}
}
// You can unslick at a given breakpoint now by adding:
// settings: "unslick"
// instead of a settings object
]
});
});
</script>
<script type="text/javascript" src="app.js"></script>
<!-- Index HTML -->
</body>
</html>
这是 app.js
const express = require('express'),
app = express();
app.set('view engine', 'ejs');
app.use(express.static(__dirname + "/public"));
app.get("/", (req, res) => {
res.render("index");
});
app.listen(3000, () => {
console.log("Server on!")
});
包.json
{
"name": "barbora_alpha",
"version": "1.0.0",
"description": "Barbora's website",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
//This line "start": "node app.js" is here because of heroku. I have it from Colt Steel's course.without it heroku throws error.
"start": "node app.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"ejs": "^3.1.3",
"express": "^4.17.1"
}
}
我通过在我的 Visual Studio 中单击鼠标右键在本地进行了尝试index.ejs
,一切看起来都很好。
但是,如果我打开开发者控制台,我会看到:
“加载资源失败:服务器响应状态为 404(未找到)app.js:1”
然后我用:
git add .
git commit -m "First commit"
heroku create ( I'm alread logged in to heroku and already pushed 5-6 apps with no problems like this)
git push heroku master
我得到了参考错误:$ is not defined
; 在我检查了我的 Heroku 日志后,我发现了 H81 Heroku 错误。
当我不使用 jQuery 时,其他所有应用程序都运行良好。
我将不胜感激任何帮助。我尝试了一切,我被困在第 5 天,在互联网上寻找答案,我不知道该怎么做。
我尝试了不同的文件路径。
不同的选项:
app.use(express.static(__dirname + "/public"));
app.use(express.static(__dirname + "/"));
一个或另一个或两者兼而有之。
如果我执行“/”,我会丢失所有静态文件图像、css、Slick Slider 插件功能。
如果我执行“/public”,我会得到:
Failed to load resource: the server responded with a status of 404 (Not Found) app.js:1
结论:我想像以前的任何其他应用程序一样将其推送到 Heroku,但由于$
未定义 jQuery,因此遇到了问题。虽然使用与其他应用程序相同的方法。
感谢您的任何帮助。
解决方案
推荐阅读
- android - OnTouchListerner 不应将滑动打开 DrawerLayout 解释为长按
- sql - Oracle 使用单个查询更新和更改两个表中的少量列记录
- mysql - 包含变量和 SELECT FROM 的 INSERT INTO 表名
- python - 如何以接近零的成本部署 jupyter notebook 应用程序
- javascript - 承诺:然后在解决之前
- ios - 即使在 info.plist 文件 swift iOS 中添加 NSMicrophoneUsageDescription 后,应用程序也会崩溃
- mysql - SQL 日期
- javascript - 如何在画布圆的小圆弧上添加渐变效果?
- spring - Spring批处理如何编写带有页眉和页脚的XML文件
- java - 以编程方式调用 Spring Security 调用登录