質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
EJS

EJSは、JavaScript用のテンプレートエンジン。HTMLなどのテンプレートテキストにJavaScriptのロジックを記述することができます。また、変数・関数の実行をテンプレートテキスト内に埋め込むことも可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

gulp

gulpは、Node.jsをベースとしたタスク自動化ツールの一つ。ストリームでファイルを処理することが特徴です。CSSプリプロセッサの使用時のコンパイルや、CSS・JavaScriptファイルの圧縮・結合などを自動的に行うことができます。

Q&A

1回答

3481閲覧

ejsが反映されない。

nyan_poi

総合スコア11

EJS

EJSは、JavaScript用のテンプレートエンジン。HTMLなどのテンプレートテキストにJavaScriptのロジックを記述することができます。また、変数・関数の実行をテンプレートテキスト内に埋め込むことも可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

gulp

gulpは、Node.jsをベースとしたタスク自動化ツールの一つ。ストリームでファイルを処理することが特徴です。CSSプリプロセッサの使用時のコンパイルや、CSS・JavaScriptファイルの圧縮・結合などを自動的に行うことができます。

0グッド

0クリップ

投稿2018/09/27 07:49

編集2018/09/27 08:53

グローバルナビをjs無しでclass付けしてカレント(アクティブ)かどうかの制御がしたいのですが、効かなくて数日悩んでます。

例えば、 news.html内のincludeの「current」が'news'だった場合、
header.ejsの<li>の中にclass="active"をあてたいのですが、書き方が悪いのかそのまま

<% var ejsRoot = '../../'; %>
<%- include(ejsRoot + 'common/header', {current : 'news'}); %>

と書き出されてしまいます。
ejsが反映され、且つ<li class="nav active">になってるようにするにはどうすればいいでしょうか?


ejsが反映されないパターン

header.ejs

<li class="nav <% if(current == 'news'){ %>active<% } %>"><a href="news.html">news</a></li>

news.html

<% var ejsRoot = '../../'; %> <%- include(ejsRoot + 'common/header', {current : 'news'}); %>

ejsが反映されるパターン(if文なし)

header.ejs

<li class="nav "><a href="〇〇.html">〇〇</a></li>

〇〇.html

<% var ejsRoot = '../../'; %> <%- include(ejsRoot + 'common/header', {current : '〇〇'}); %>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0


追記
gulpfile.jsのbrowserSync部分を以下のとおりにコメントアウトしたら反映されました。

var paths = { root: './src',ejsDir: { src: './src/html/**/*.html', ejs: './src/**/*.ejs', dest: './dist/', filtering: '!./src/**/_*.ejs' } }; gulp.task('ejs_dev', function() { gulp.src([paths.ejsDir.src, paths.ejsDir.filtering]) // .pipe(changed(ejsDir.dest)) .pipe(plumber()) .pipe(ejs({},{"ext": ".html"})) .pipe(prettify({indent_char: ' ', indent_size: 2})) .pipe(gulp.dest(paths.ejsDir.dest)) // .pipe(browserSync.reload({ // stream: true // })); });

browserSyncを効かせた状態にしたいのですが、どうすればよいでしょうか?

投稿2018/09/27 08:52

nyan_poi

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問