Error: Failed to lookup view "home" in views directory
Error: Failed to lookup view "home" in views directory
我用 electron 和 expressjs 开发了一个小应用程序。在开发模式下,该应用程序运行良好。但是在为生产模式打包应用程序后,我得到了找不到主视图的错误。以下是一些细节:
app.js
中的主要路线
router.get('/', async (req,res) => {
res.render('home');
});
我的文件结构是:
为了解决问题,我尝试了以下方法:
router.get('/', async (req,res) => {
var path = require('path');
res.render(path.join(__dirname+'/views/home.ejs'));
});
现在视图已加载,但 home.ejs 内的所有 css 和 js 文件都未加载
所有 css 和 js 文件都位于 public 文件夹下和 home.ejs 内,我将这些文件引用如下:
<script src="/js/vendor/jquery-3.6.0.min.js"></script>
<script src="/js/vendor/bootstrap.bundle.min.js"></script>
<script src="/js/home.js"></script>
我尝试了 electron packagers,electron-forge 和 electron-builder,都出现了同样的错误。你能帮忙吗??
您需要在应用中的某处使用 express.static(...)
语句来提供 css 和 js 文件。那看起来怎么样?以下应该有效:
app.use("/js", express.static(__dirname + "/public/js"));
app.use("/css", express.static(__dirname + "/public/css"));
我用 electron 和 expressjs 开发了一个小应用程序。在开发模式下,该应用程序运行良好。但是在为生产模式打包应用程序后,我得到了找不到主视图的错误。以下是一些细节: app.js
中的主要路线router.get('/', async (req,res) => {
res.render('home');
});
我的文件结构是:
为了解决问题,我尝试了以下方法:
router.get('/', async (req,res) => {
var path = require('path');
res.render(path.join(__dirname+'/views/home.ejs'));
});
现在视图已加载,但 home.ejs 内的所有 css 和 js 文件都未加载
所有 css 和 js 文件都位于 public 文件夹下和 home.ejs 内,我将这些文件引用如下:
<script src="/js/vendor/jquery-3.6.0.min.js"></script>
<script src="/js/vendor/bootstrap.bundle.min.js"></script>
<script src="/js/home.js"></script>
我尝试了 electron packagers,electron-forge 和 electron-builder,都出现了同样的错误。你能帮忙吗??
您需要在应用中的某处使用 express.static(...)
语句来提供 css 和 js 文件。那看起来怎么样?以下应该有效:
app.use("/js", express.static(__dirname + "/public/js"));
app.use("/css", express.static(__dirname + "/public/css"));