検索

ホームページ  >  に質問  >  本文

node.js - nodejs 的sails 框架如何修改ejs的后缀为html

迷茫迷茫2787日前689

全員に返信(2)返信します

  • 伊谢尔伦

    伊谢尔伦2017-04-17 16:05:33

    解決策が見つかりました

    テンプレートのサフィックスを html に変更すると、ページにアクセスする際にエラーが発生しました。明らかにサフィックスの設定が間違っています。

    リーリー

    Could not render viewコードを検索したところ、余分なノードviewが見つかりました。このとき、キーワードdefaultEngineを検索して全文検索を行ったところ、場所が見つかりました。

    リーリー

    上記のコードによれば、default Engineview engine の設定から取得されることを意味します。それでは、view engine を検索してみましょう。次のコードを見つけます:

    リーリー

    上記のコードから、この view engine が実際には sails.config.view.engine.ext からの構成であり、構成ファイルのパスと同じであることがわかります。

    リーリー

    現時点では、このコードにブレークポイントを設定します

    リーリー

    その後、素晴らしいことが起こりました

    リーリー

    これに相当する設定のようですが、このファイルを開いてみると、中のengineはこのように定義されていました

    リーリー

    なんと! 、状況は何ですか、形式が間違っているのはなぜですか。 json文字列かと思っていました。

    次に大胆な調整を加えます

    リーリー

    再度エクスポートして、正しい構成変更を取得します

    リーリー

    この時点で、自信を持って再起動し、ページを更新しましたが、別のエラーが見つかりました。 ! ! !なんと

    リーリー

    エラーレポートが変更され、今の変更が確実に有効であることが示されました。そしてこの時点で、ヘッダーのサフィックス名を ejs に戻してみたところ、フロントエンド ページが正常であることがわかりました。このheaderファイルを読み込むとプログラム内にサフィックス名が書き込まれるようです。

    残りのプロセスは、問題がどこにあるのかを判断し、エラー レポートの実行順序に基づいて問題の場所を特定することです。

    リーリー

    上記のコードを見つけたところ、パス変数に問題があり、パス変数が見つからないことがわかりました。 namefilename

    を印刷しましょう リーリー

    現時点で私たちは方法を発見しましたresolveInclude

    リーリー

    見てください。これは、この場所が結合されていることを意味しますが、extname が空を返した場合にのみ結合されます。つまり、ここの name には、渡されるときにサフィックス名が含まれていません。 ! ! !

    これを見た後、テンプレート layout.html では、include コマンドが header

    をロードするために使用されていることが基本的に理解できました。 リーリー

    そこで、ここの headerheader.html に変更して再度アクセスすると、正常になります。

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 16:05:33

    それなら、jade テンプレートを試してみてはいかがでしょうか。ネイティブ HTML で直接記述することができます

    返事
    0
  • キャンセル返事