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

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

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

Jade(ジェイド)は、Hamlに影響を受けて開発されたJST(JavaScript Templates)のひとつです。Node.jsで動かすことができます。

Q&A

解決済

2回答

4212閲覧

jade で Unexpected block "content" エラーになる

wpci

総合スコア7

jade

Jade(ジェイド)は、Hamlに影響を受けて開発されたJST(JavaScript Templates)のひとつです。Node.jsで動かすことができます。

0グッド

0クリップ

投稿2016/11/02 04:58

###jadeで静的なWebサイトを構築
jadeで静的なWebサイトを作っています。

開発のベースは Yeoman の generator-webapp に jade を組み込んだものです。

recipes にある jade(現:pug) を組み込み

プロンプトで gulp serve を実行すると以下のエラーメッセージが表示されます。

###発生している問題・エラーメッセージ

Warning: Unexpected block "content" on line 9 of D:\app\layouts\default.jade. This block is never used. This warning will be an error in v2.0.0

###レイアウトファイル default.jade

jade

1doctype html 2html.no-js(lang='ja') 3 head 4 5 block bodyClass 6 body 7 8 //if lt IE 10 9 p.browserupgrade 10 | You are using an 11 strong outdated 12 | browser. Please 13 a(href='http://browsehappy.com/') upgrade your browser 14 | to improve your experience. 15 include ../includes/header 16 17 block content 18 19 include ../includes/footer

###ページ生成ファイル test.jade

jade

1extends layouts/default 2 3block bodyClass 4 body.test 5 6block content 7 h1 タイトル

###試したこと
ページ生成ファイルのコードで

jade

1block bodyClass 2 body.test

のコードがない場合はエラーは表示されません。

###補足情報(言語/FW/ツール等のバージョンなど)

  • 開発環境は Windows 10

エラーメッセージでググると海外の開発者の方も同じようなエラーに遭遇している書き込みを拝見しましたが、解決に至っていません。

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

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

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

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

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

guest

回答2

0

block bodyClassを削除して実装することにしました。

各ページ毎に振るクラスはbody要素ではなく、block contentの中に書くことにしました。

jade

1//- test.jade 2extends layouts/default 3 4block content 5 .test 6 h1 タイトル

投稿2016/11/03 04:30

wpci

総合スコア7

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

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

0

ベストアンサー

エラーの原因としては、block bodyClassがあることによって
以下のbodyタグ内がまるっとbody.testに置換されるため、

jade

1body 2 3 //if lt IE 10 4 p.browserupgrade 5 | You are using an 6 strong outdated 7 | browser. Please 8 a(href='http://browsehappy.com/') upgrade your browser 9 | to improve your experience. 10 include ../includes/header 11 12 block content 13 14 include ../includes/footer

の部分がまるっと消えて

jade

1body.test

に置き換えられていますようですね。
よって、その時点で既にblock contentは消滅しているので、
block contentが見つからないとのエラーが発生しています。

解決策としては、少々回りくどい感じもありますが、

jade

1//- layouts/default.jade 2doctype html 3 head 4 block bodyClass

jade

1//- layouts/body.jade 2extends default 3block bodyClass 4 body.test 5 block content

jade

1//- test.jade 2extends layouts/body 3block content 4 h1 hello world!

のような感じで3ファイルに分けて、順に読ませるか、
もしくは全部includesで済ませてしまうか、という方法のどちらかになるかと思います。

投稿2016/11/02 19:47

ezaki

総合スコア204

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

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

wpci

2016/11/03 04:34

なるほどですね。納得しました。ありがとうございます。 自己解決しましたが、ベストアンサーさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問