当前位置: 首页 > 知识库问答 >
问题:

当不使用模板引擎时,如何在Express.js视图中包含CSS文件?

龙繁
2023-03-14

我正在尝试创建一个Express应用程序。我的限制是我不能使用任何模板引擎来呈现HTML。存在(至少)两个问题:

  1. 我预见的一个问题是,我将如何根据需要向用户显示的内容来管理数据。例如。我的数据库中有一个transactions表,我需要显示所有这些事务的HTML表。我使用的传统方法是利用模板引擎,在那里我可以放置一个for循环来遍历记录。
  2. 调用特定路由时发送HTML文件,但它无法从另一个文件夹获取CSS文件。

对于问题2。我试过:

 app.get('/transactions', (req, res) =>
    res.sendFile(path.join(__dirname+'/public/assets/html/transactions.html')))

null

然后在transactions.html中

<link rel="stylesheet" href="../stylesheets/shared/constants.css">

null

当页面显示时,它不应用任何样式。当我在浏览器中检查源代码,并单击constants.css的链接时,它显示消息:

Cannot GET /stylesheets/shared/constants.css

null

这似乎不是正确的逻辑。哪些事情要改?

共有1个答案

汪典
2023-03-14

简单示例:

假设您的文件夹结构:

app.js
|   +-- public
|   |   +-- stylesheets
|   |   |   +-- shared
|   |   |   |   +-- constants.css
...

您可以简单地将公用文件夹作为静态服务器,如:

app.use(express.static(__dirname + "/public"))

// In your html
<link rel="stylesheet" href="/stylesheets/shared/constants.css">

对于express,最好使用绝对路径,而不是相对路径。

或者为静态文件设置虚拟路径,如:

app.use('/static', express.static(__dirname + "/public"))

// In your html
<link rel="stylesheet" href="/static/stylesheets/shared/constants.css">
 类似资料:
  • 问题内容: 我是Django的新手,我正尝试通过一个正在开发的简单项目“ dubliners”和一个名为“ book”的应用程序来学习它。目录结构是这样的: 我有一个JPG文件,需要在每个网页的页眉中显示。我应该在哪里存储文件?我应该使用哪个路径来使用模板显示标签?我已经尝试过各种位置和路径,但到目前为止没有任何效果。 … 感谢您在下面发布答案。但是,我尝试了图像的相对路径和绝对路径,但仍然在网页

  • 本文向大家介绍在 Express 中使用模板引擎,包括了在 Express 中使用模板引擎的使用技巧和注意事项,需要的朋友参考一下 需要在应用中进行如下设置才能让 Express 渲染模板文件: views, 放模板文件的目录,比如: app.set('views', './views') view engine, 模板引擎,比如: app.set('view engine', 'jade') 然

  • 问题内容: 我正在为使用Jinja模板的服务器使用Flask微框架。 我有一个家长和孩子们的一些所谓的模板和,这些孩子有的模板是相当大的HTML文件,我想以某种分裂他们超过我的工作更好的洞察力。 我的脚本内容: The magic is in : 魔力在于child1.html: 而不是评论: 我有很多html文本,很难跟踪更改并且不犯一些错误,因此很难查找和纠正。 我只想加载而不是全部写入。 我

  • 问题内容: 我正在处理一些Java代码,其中将Velocity 1.7设置为通过ClasspathResourceLoader检索模板。下面是该代码的精简示例。它来自在Jetty服务器上运行的Tapestry Web应用程序。 Java类,模板和要包含的文件都在同一文件夹“ testpackage”中,因此在生成的JAR中,它们都在同一包“ testpackage”中。 问题是,如果模板包含 指令

  • 问题是,如果模板包含一个 指令时,Velocity找不到“MyInclude.vm”,并抛出ResourceNotFoundException。 因为在getTemplate的参数中,我必须将包名前置到模板名之前,所以我也尝试在模板内的#include中执行同样的操作: 它听起来很像一个环境变量,但我不知道应该将它设置为什么,因为我使用的是ClasspathResourceLoader,并且要包含

  • 问题内容: 我正在使用django,并且我有一个名为models.admin.py的文件,我想在models.py中执行以下操作: 但是,使用双引号引起了语法错误。但是如果我只是做 然后我得到“导入错误:没有名为管理员的模块” 有什么方法可以从名称中带有句点的python文件导入? 问题答案: 实际上,您 可以 导入名称无效的模块。但是您需要使用它,例如,假设文件名为,则可以 但阅读文档上,并开始