Tag: 模板

EJS模板中的外部js

我使用EJS有一些麻烦。 我想在我的模板中使用一个JavaScript文件,但我找不到正确的方式来实现它,这里是我的代码到目前为止: game.ejs: <!DOCTYPE html> <html> <head> <title>DDD-Duel !!!</title> <link rel="stylesheet" type="text/css" href="/view/css/game.css"> <script type="text/javascript" src="/socket.io/socket.io.js"></script> <script type="text/javascript" src= "/actions_client.js"></script> </head> <body> <style type="text/css"> … </style> // My body </body> </html> 无论我为脚本/actions_client.js尝试什么path,视图在浏览器中加载时都找不到。 这也许是node.js的一个问题我也使用,我不知道在哪里把我的脚本,以使我的视图find它(什么和/或文件夹localhost:8080 /?) 问候 编辑:我不明白的东西是如何查看findsocket.io/socket.io/js,而我没有find它时,我在我的电脑上search? 编辑:这是我的代码在我的节点文件的方式: var express = require('express'); var app = express(), server = require('http').createServer(app), io = require('socket.io').listen(server), fs = require('fs'), composants […]

使用html和纯文本模板来表示模板引擎?

我正在寻找一种方法来从ExpressJS应用程序(取决于“接受”头)响应纯文本和HTML(和JSON)。 在所有情况下,我需要一些方法来在实际输出之前通过模板引擎传递输出。 所以我正在寻找一个支持的模板引擎。 到目前为止,我正在使用像Swig这样的解决方法: var app = express(); var swig = require('swig'); app.use(function (req, res, next) { if (req.accepts('text/html')) { app.engine('html', swig.renderFile); app.set('view engine', 'html'); app.set('views', path.join(__dirname, 'views/html')); } else { app.engine('txt', swig.renderFile); app.set('view engine', 'txt'); res.set('Content-Type', 'text/plain'); app.set('views', path.join(__dirname, 'views/text')); } next(); }); 但是,我认为有一个更好的/原生的方式来做到这一点,已经实现了某个地方? 干杯

无法在客户端上呈现EJS模板

我正在快速编写应用程序,我使用ejs作为视图/模板引擎。 在path/artists ,我正在呈现艺术家涵盖的视图artists.ejs 。 当点击一个封面,我想要一个AJAX调用来检索相应的数据,把它放在我的艺术家artist.ejs模板/视图中,并在封面下的HTML中显示这个模板。 我已经看到这个相关的问题,但它并没有解决我的用例。 一切似乎清晰,但我不能用模板呈现数据。 我想编译模板服务器端,将其发送到客户端准备使用,然后在需要的时候用来自AJAX调用的数据填充它。 我做了什么: 当调用/artists ,使用ejs.compile(str, opt)在服务器端进行编译: router.get('/artists', function(req, res) { // Compile artist template fs.readFile('views/artist.ejs', "utf-8", function(err, template) { // Convert template file to string artist_template = ejs.compile(template); // Compile template res.render('artists.ejs', {template: artist_template}); // render page with compiled template }); 我负责将文件转换为string,因为ejs编译器只能使用String(与Jade .compileFile相比) 然后在客户端,我抓取这个函数: <script> var template = <%= […]

NodeJs使用PHP和EJS作为模板引擎,我如何传递和访问数据从路由到模板?

任何人都可以帮助我在访问模板中的数据? 以下是server.js(主节点Module)的代码: var engine = require( 'express-ejs-layouts'); app.get('/', router); app.engine('ejs', engine); app.set('view engine', 'ejs'); app.engine('php', phpnode); app.set('view engine', 'php'); routes.js //Initialize views router.get('/', function(req, res){ res.render('index', {data : 'jobDataVal'}); }) index.php(模板文件) <!DOCTYPE html> <html> <head> <title></title> <?php include_once('header_scripts.php'); ?> </head> <body> <?php echo $data; ?> <%= data %> <?php include_once('footer_scripts.php');?> </body> </html> 我正在尝试从模板中的路由访问数据variables,但该值不可访问。

实施WP风格板的熨斗

我如何将我的导航插入到我的HTML文件如下。 (某种WordPress的风格) home.html的: <html> <body> (I dont know what to put here for nav) <div main> </div> </body> <html> nav.html <nav> <img scr="logo.png"> <ul> <li>home</li> </ul> </nav> 那么如何在板上实现模板呢? 注意:我正在使用熨斗,碟子,导演

Express和Jade的模板inheritance

我很难让模板inheritance正常工作。 我发现我可以得到索引/布局运行良好,但它不包括其他扩展块。 例如,这里是我的layout.jade文件: #wrapper block tester // Side bar #list ul#friend-list.browser li#friends.label Friends li#following.label Following // Content block content 在同一个目录中,我有index.jade和tester.jade。 index.jade包含以下内容,并且工作: extends layout block content .content .row-fluid .span12 .row-fluid #browser-toolbar.span12.toolbar .row-fluid .span12 #bento tester.jade看起来像这样,并不起作用 : extend layout block tester h1 hello world 我目前正在使用Express v.3.0b4。 任何人都可以帮助解释为什么这是行不通的? 它不会抛出一个错误 – 它根本不呈现tester.jade文件。

Yeoman / JS:在HTML模板中重复HTML块 – 编译最终与WordPress集成?

对,所以我目前正在研究一个最终将由WordPress后端支持的项目,但在前端,将大量使用CSS3和JavaScript – 甚至可能利用历史API并dynamic加载内容通过AJAX。 我目前正在处理静态的HTML模板,正确地获得布局,获得页面之间的交互和导航所需的所有JS。我目前使用Yeoman作为监视服务器来编译我的SASS模板并合并所有的JS模块使用RequireJS 。 一切都很好,但我开始注意到我在HTML模板中重复了很多HTML块,它不是很有效 – 我想只在一个地方编辑块,然后重复,但是我需要很多次在页面上 – 页眉,页脚,博客列表页面上的单个博客项目等,而我脚手架的前端模板。 从本质上讲,我想要做的是块模板,我可以导入到父文件,通过循环来生成我需要的文件,一旦我准备通过WordPress的最终标记 ,我可以build立该项目,导出静态HTML文件,以及编译后的JS和CSS3,然后将HTML分解成最后一个Wordpress构build。 我最好怎么样呢? 整合翡翠 ? 使用把手 ? 对于Jade提供的简短语法,我并不是太在意,我只是希望在脚手架的时候能够从模板中编译vanilla HTML。 也许像杰基尔 ? 有没有基于节点的版本? 这甚至是正确的方式去做事吗? 我已经考虑从JSON生成所有的前端,并且在Wordpress集成期间,在Wordpress中公开JSON API,但是生成DOM中的所有模板将不会产生任何 SEO,这是一个问题。 你们有什么感想?

Handlebars帮助程序检索使用它的文件的基本名称

我正在寻找一种方法来创build一个帮助器,它只是简单地呈现放置模板的文件的基本名称,而不需要任何额外的参数,如下所示: {{ basename }} 。 换句话说,如果我在两个部分内部使用了这个助手,比如说header.hbs和navbar.hbs ,我希望每个部分的名字在输出中被渲染。 我查了几个小时,找不到任何答案。 任何方向或指导将不胜感激。

来自Jade的sendFile('/ index.html')和render('index')之间的差异

我是JS新手。 我发现了一个类似的问题,但在其他方面。 我的问题是:在发送行html作为响应的模板Jade Express上的差异或冒险是什么? 我的意思是:为什么我要在Express上使用Jade模板: app.set('view engine', 'jade'); app.get('/', function (request, response) { response.render('index');}); 如果我可以直接发送html文件作为回应: app.get('/', function (request, response) { response.set('Content-Type', 'text/html'); response.sendFile('/index.html');}); 为什么我会花费时间和处理渲染,并发送一个Jade文件直接发送一个HTML文件。 谢谢!。

更新服务器端渲染客户端

我有一个服务器端模板引擎Jade,我用它来渲染布局。 当客户端第一次接收到布局时,布局中可能需要更新的内容只会有小的变化,而不是布局本身。 有没有办法通过改变需要更新的东西来“放弃”客户端,同时使用Jade的力量。