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

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

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

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Q&A

解決済

2回答

732閲覧

node.jsの勉強中。htmlタグごとブラウザに表示されてしまいます。

tatsuya_guchi

総合スコア10

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

0グッド

1クリップ

投稿2017/12/09 01:44

編集2017/12/09 01:47

node.jsの勉強中なのですが、ejsを読み込みサーバーを起動させ表示させると、htmlタグごとそのまま表示されてしまいます。イメージ説明

coedEditerで文字コードがutf-8になっていることは確認したのですが、原因がわかりません。
開発ツールで見ると、preタグが入っているようです。

調べたのですが原因が全くわかりません。。

念のためサーバーサイドのプログラムも記載しておきす。9行目でejsを読み込んでいます。
イメージ説明

どなたかご教授いただければと思います。よろしくお願いいたします。

ejs側のソースです。イメージ説明

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

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

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

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

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

guest

回答2

0

contentType: 'text/plain'が直接の原因です。
これを受け取ったChrome等のブラウザは
「おっ、HTMLかと思ったけどtext/plainって書いてあるからテキストファイルって言いたいわけか、ならHTMLとして解析しないようにPreタグで包んでおこうかな」
…と解釈するわけですね。

明示的に指定するならtext/html、恐らくデフォルトではcontentTypeを書き換えなければ自動的にtext/htmlになります。


おまけ

require('./settings');

Node.jsのrequireはディレクトリを明示的に表す./../からスタートしない限り、
上の階層まで遡りつつnode_modulesディレクトリの配下にあるファイルを探します。

投稿2017/12/09 01:56

編集2017/12/09 01:57
miyabi-sun

総合スコア21158

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

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

tatsuya_guchi

2017/12/09 02:02

ありがとうございました!補足事項も非常に助かります。
guest

0

ベストアンサー

Content-typetext/plainにしているために、ブラウザ側ではただのテキストファイルとみなして処理してしまっています。

Content-typetext/htmlに切り替えましょう。

投稿2017/12/09 01:52

maisumakun

総合スコア145121

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

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

tatsuya_guchi

2017/12/09 02:01

なるほど、ありがとうございました!資料はplainになってるのに・・・ ベストアンサーとさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問