Saya merender template, yang saya coba gaya dengan style sheet eksternal. Struktur file adalah sebagai berikut.
/app
- app_runner.py
/services
- app.py
/templates
- mainpage.html
/styles
- mainpage.css
mainpage.html terlihat seperti ini
<html>
<head>
<link rel= "stylesheet" type= "text/css" href= "../styles/mainpage.css">
</head>
<body>
<!-- content -->
Tidak ada gaya saya yang diterapkan. Apakah ini ada hubungannya dengan fakta bahwa html adalah template yang saya render? Python itu terlihat seperti ini.
return render_template("mainpage.html", variables..)
Saya tahu ini banyak yang berhasil, karena saya masih bisa membuat template. Namun, ketika saya mencoba untuk memindahkan kode gaya saya dari blok "gaya" dalam tag "head" html ke file eksternal, semua gaya hilang, meninggalkan halaman html kosong. Adakah yang melihat kesalahan dengan struktur file saya?
<script src="{{ url_for('static',filename='javascriptFileName.js') }}"> </script>
Dalam template jinja2 (yang menggunakan flask), gunakan
The
static
file biasanya dalamstatic
folder, meskipun, kecuali dikonfigurasi sebaliknya.sumber
Saya telah membaca beberapa utas dan tidak ada yang memperbaiki masalah yang dijelaskan orang-orang dan saya juga alami.
Saya bahkan telah mencoba untuk menjauh dari conda dan menggunakan pip, untuk meningkatkan ke python 3.7, saya telah mencoba semua pengkodean yang diusulkan dan tidak ada yang diperbaiki.
Dan inilah alasannya (masalahnya):
secara default python / flask mencari statik dan template dalam struktur folder seperti:
Anda dapat memverifikasi sendiri menggunakan debugger di Pycharm (atau yang lainnya) dan memeriksa nilai pada aplikasi (app = Flask ( name )) dan mencari teamplate_folder dan static_folder
untuk memperbaikinya, Anda harus menentukan nilai saat membuat aplikasi seperti ini:
jalur TEMPLATE_DIR dan STATIC_DIR bergantung pada lokasi aplikasi file. dalam kasus saya, lihat gambar, itu terletak di dalam folder di bawah src.
Anda dapat mengubah template dan folder statis sesuai keinginan dan mendaftar di app = Flask ...
Sebenarnya, saya sudah mulai mengalami masalah ketika bermain-main dengan folder dan kadang-kadang bekerja pada saat tidak. ini memperbaiki masalah untuk selamanya
kode html terlihat seperti ini:
Ini kodenya
Berikut struktur foldernya
sumber
Masih mengalami masalah setelah mengikuti solusi yang disediakan oleh codegeek:
<link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='styles/mainpage.css') }}">
?Di Google Chrome menekan tombol muat ulang (F5) tidak akan memuat ulang file statis. Jika Anda telah mengikuti solusi yang diterima tetapi masih tidak melihat perubahan yang Anda buat pada CSS, tekan
ctrl + shift + R
untuk mengabaikan file cache dan muat ulang file statis.Di Firefox menekan tombol reload muncul untuk memuat ulang file statis.
Di Edge, menekan tombol segarkan tidak memuat ulang file statis. Menekan
ctrl + shift + R
seharusnya mengabaikan file yang di-cache dan memuat ulang file statis. Namun ini tidak berfungsi di komputer saya.sumber
Saya sedang menjalankan flask versi 1.0.2 sekarang. Struktur file di atas tidak berfungsi untuk saya, tetapi saya menemukan yang berfungsi, yaitu sebagai berikut:
(Harap dicatat bahwa 'statis' dan 'template' adalah folder, yang harus diberi nama yang persis sama.)
Untuk memeriksa versi flask yang Anda jalankan, Anda harus membuka Python di terminal dan mengetik berikut ini:
sumber
Struktur proyek labu berbeda. Seperti yang Anda sebutkan dalam pertanyaan, struktur proyek sama tetapi satu-satunya masalah adalah dengan folder gaya. Folder gaya harus berada di dalam folder statis.
sumber
Satu hal lagi untuk ditambahkan ke utas ini.
Jika Anda menambahkan garis bawah pada nama file .css Anda, maka itu tidak akan berhasil.
sumber
Satu hal lagi untuk ditambahkan Bersamaan dengan jawaban yang diberi suara positif di atas, pastikan baris di bawah ditambahkan ke
app.py
file:Jika tidak, flask tidak akan bisa mendeteksi folder statis.
sumber
Jika salah satu metode di atas tidak berfungsi dan kode Anda sempurna, cobalah menyegarkan dengan menekan Ctrl + F5. Ini akan menghapus semua chaces dan kemudian memuat ulang file. Itu berhasil untuk saya.
sumber
Saya cukup yakin ini mirip dengan template Laravel, begitulah cara saya melakukannya.
Dirujuk: Masalah jalur file CSS
Aplikasi flask sederhana yang membaca isinya dari file .html. Style sheet eksternal diblokir?
sumber