Saya mencoba perubahan sederhana ini dari seed dan membuat file .html yang sesuai (mis. Index.html).
//app.set('view engine', 'jade');
app.set('view engine', 'html');
dan file ini tetap sama:
exports.index = function(req, res){
res.render('index');
};
tapi saat berlari aku mengerti
500 Kesalahan: Tidak dapat menemukan modul 'html'
Apakah satu-satunya pilihan saya untuk menggunakan 'ejs'? Maksud saya adalah untuk menggunakan HTML biasa dalam hubungannya dengan AngularJS.
Jawaban:
Jawaban di tautan lain akan berfungsi, tetapi untuk menyajikan HTML, tidak perlu menggunakan mesin tampilan sama sekali, kecuali jika Anda ingin mengatur perutean yang funky. Sebagai gantinya, cukup gunakan middleware statis:
sumber
res.render()
akan berfungsi lagi. Sebagai gantinya, masukkan file HTML mentah Andapublic
dan biarkan middleware statis menangani penyajian file secara langsung. Jika Anda membutuhkan rute yang lebih bagus dari ini, Anda mungkin dapat mengatur mesin tampilan HTML Anda sendiri.Untuk membuat mesin render menerima html, bukan giok, Anda dapat mengikuti langkah-langkah berikut;
Instal konsolidasi dan teguk ke direktori Anda.
tambahkan baris berikut ke file app.js Anda
tambahkan template tampilan Anda sebagai .html di dalam folder “views”. Mulai ulang server simpul Anda dan mulai aplikasi di browser.
Meskipun ini akan membuat html tanpa masalah, saya akan merekomendasikan Anda untuk menggunakan JADE dengan mempelajarinya. Jade adalah mesin template yang luar biasa dan mempelajari ini akan membantu Anda mencapai desain & skalabilitas yang lebih baik.
sumber
Di apps.js Anda tambahkan saja
Sekarang Anda dapat menggunakan mesin tampilan ejs sambil menyimpan file tampilan Anda sebagai .html
sumber: http://www.makebetterthings.com/node-js/how-to-use-html-with-express-node-js/
Anda perlu menginstal dua paket ini:
Dan kemudian mengimpor paket yang dibutuhkan:
Dengan cara ini Anda dapat menyimpan tampilan Anda sebagai .html bukan .ejs .
Cukup membantu saat bekerja dengan IDE yang mendukung html tetapi jangan mengenali ejs.
sumber
coba ini untuk konfigurasi server Anda
maka fungsi panggil balik Anda ke rute akan terlihat seperti:
sumber
Tidak diperlukan mesin tampilan, jika Anda ingin menggunakan sudut dengan file html biasa. Inilah cara melakukannya: Di
route.js
file Anda :sumber
Saya sarankan menggunakan https://www.npmjs.com/package/express-es6-template-engine - mesin templat gelombang yang sangat ringan dan sangat cepat. Nama ini agak menyesatkan karena dapat bekerja tanpa expressjs juga.
Dasar-dasar yang diperlukan untuk berintegrasi
express-es6-template-engine
dalam aplikasi Anda cukup sederhana dan cukup mudah untuk diterapkan:index.html
file yang berada di dalam direktori 'views' Anda:sumber
Jawabannya sangat sederhana. Anda Harus menggunakan app.engine ('html') untuk merender * .html Halaman. coba ini. Ini harus Memecahkan Masalah.
file .html Akan berfungsi
sumber
File HTML dapat dirender menggunakan mesin ejs:
Dan pastikan file Anda di bawah "/ tampilan" dinamai dengan ".ejs".
Misalnya "index.ejs".
sumber
Mengomentari middleware untuk html yaitu
Alih-alih gunakan:
sumber
html bukan mesin tampilan, tetapi ejs menawarkan kemungkinan untuk menulis kode html di dalamnya
sumber
ke halaman html server melalui routing, saya telah melakukan ini.
dan mengganti nama file .html saya menjadi file .hbs - setang mendukung html biasa
sumber
Untuk membuat mesin render menerima html, bukan giok, Anda dapat mengikuti langkah-langkah berikut;
Ini seharusnya bekerja
sumber
Cobalah solusi sederhana ini, itu berhasil untuk saya
sumber
Instal template ejs
npm install ejs --save
Lihat ej di app.js
Buat template ejs dalam tampilan seperti dilihat / indes.ejs & gunakan tempalte ejs di router
sumber
Buat template html dengan bantuan swig.
sumber
File html tidak perlu dirender.
apa yang dilakukan mesin render adalah mengubah file yang bukan file Html menjadi file Html.
untuk mengirim file Html, cukup lakukan:
Anda mungkin perlu menggunakan
__dirname+"/index.html"
begitu express akan tahu jalur yang tepat.sumber