Saya menggunakan pdfgen reportlab untuk membuat PDF. Di PDF ada gambar yang dibuat oleh drawImage
. Untuk ini saya perlu URL ke gambar atau path ke gambar dalam tampilan. Saya berhasil membangun URL tetapi bagaimana cara mendapatkan jalur lokal ke gambar?
Bagaimana saya mendapatkan URL:
prefix = 'https://' if request.is_secure() else 'http://'
image_url = prefix + request.get_host() + STATIC_URL + "images/logo_80.png"
request.build_absolute_uri
seperti yang dijelaskan di sini: stackoverflow.com/questions/2345708/…from django.templatetags.static import static
sebagai gantinya.jawaban dyve adalah jawaban yang bagus, namun, jika Anda menggunakan "penyimpanan cache" pada proyek django Anda dan jalur url terakhir dari file-file statis harus mendapatkan "hash" (seperti style.aaddd9d8d8d7.css dari style.css ), maka Anda tidak dapat memperoleh url dengan tepat
django.templatetags.static.static()
. Sebagai gantinya, Anda harus menggunakan tag templat daridjango.contrib.staticfiles
untuk mendapatkan url hash.Selain itu, jika menggunakan server pengembangan, metode tag templat ini mengembalikan url yang tidak hash, sehingga Anda dapat menggunakan kode ini terlepas dari host mana yang sedang dikembangkan atau diproduksi! :)
sumber
inilah cara lain! (diuji pada Django 1.6)
sumber
staticfiles_storage.url(path, force=True)
Gunakan
static
tag default :Ada tag lain di
django.contrib.staticfiles.templatetags.staticfiles
(seperti dalam jawaban yang diterima), tetapi sudah usang dalam Django 2.0+.sumber
Dari Django 3.0 Anda harus menggunakan
from django.templatetags.static import static
:sumber
Jawaban @ dyve tidak bekerja untuk saya di server pengembangan. Sebaliknya saya menyelesaikannya dengan
find
. Inilah fungsinya:sumber
Jika Anda ingin mendapatkan url absolut (termasuk protokol, host dan port), Anda dapat menggunakan
request.build_absolute_uri
fungsi seperti di bawah ini:sumber