前端 - 网页根目录改成子目录后,文件如何调用?
PHP中文网
PHP中文网 2017-04-18 09:06:32
0
4
887

用django写的程序,然后大概的问题是这样的.跟这个类似:

然后按照答案 改成 ./ 的话,首页是可以访问的,但是内页,文章页就不行了.
网站的结构 :

默认生成的都是 / 的,我知道把所有的链接前面加一个 目录的名称 比如 /001/ 也是可以访问的,但是感觉这样不够智能 而且也不够方便,求快捷的方法?

PHP中文网
PHP中文网

认证0级讲师

membalas semua(4)
刘奇

Petikan berikut adalah daripada buku yang saya tulis sebelum ini: Ia Django

Gunakan fail statik

Fail statik juga diperlukan dalam tapak web dinamik, seperti imej, css, fail js, dsb. yang digunakan oleh tapak web. Bagaimanakah kami mengurus dan menggunakan fail statik ini? Pertama, kami menambah dua folder mysite dan static di bawah lapisan atas assets Folder static ialah direktori yang digunakan untuk meletakkan fail statik semasa pembangunan Beberapa subdirektori boleh ditambah di bawah direktori ini untuk meletakkan fail yang berbeza. Jenis fail statik, seperti menetapkan img untuk meletakkan imej atau css untuk meletakkan fail css. Dan assets ialah direktori di mana fail statik diletakkan apabila tapak web sebenarnya dalam talian Sebab mengapa kedua-dua direktori ini dipisahkan adalah kerana kami perlu menyerahkan pengurusan fail statik kepada pelayan web apabila ia berada dalam talian.

Seterusnya, mari pergi ke settings.py untuk menyediakannya:

...
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)
STATIC_ROOTS = os.path.join(BASE_DIR, 'assets')
...

Sebanyak tiga parameter ditetapkan di sini Penerangan terperinci adalah seperti berikut:

Parameter Penerangan STATIC_URL Corak URL bagi fail statik, di sini kami menetapkannya kepada /static/, kemudian laluan halaman web bermula dengan /static/ akan Dipertimbangkan sebagai fail statik, seperti: http://127.0.0.1/static/hello.png, http://127.0.0.1/static/hi.js, Tetapi jika ia http://127.0.0.1/restaurants/static/, ia akan sepadan dengan laluan dalam urls.py dan bukannya fail statik STATICFILES_DIRS Folder tempat fail statik diletakkan semasa pembangunan. Membenarkan menyediakan berbilang folder untuk menunjukkan lokasi fail statik. Seperti yang ditetapkan di atas, kita boleh menambah folder
參數 說明
STATIC_URL 靜態檔的URL pattern,這邊我們設為 /static/ ,那麼在網頁路徑中以 /static/ 開始的便會被視為靜態檔,如: http://127.0.0.1/static/hello.pnghttp://127.0.0.1/static/hi.js ,但如果是 http://127.0.0.1/restaurants/static/ 則會匹配urls.py中的路徑,而非靜態檔
STATICFILES_DIRS 開發時放置靜態檔的資料夾。允許設置多個資料夾來指示靜態檔的位置。如上面設定,我們可以在與BASE_DIR所指示的資料夾底下新增一個 static 資料夾,並把圖檔,css,js放在裡面
STATIC_ROOT 上線時放置靜態檔的資料夾。藉由python manage.py collectstatic ,Django 會將 STAIC_DIRS 下發現的靜態檔複製至 STATIC_ROOT 下。由於當設定檔的 DEBUG 設為 False 後,Django 預設便不會處理回傳靜態檔了,藉由指令將這些檔案集合到一個資料夾下,方便網頁伺服器管理及讀取
di bawah folder yang ditunjukkan oleh BASE_DIR dan meletakkan fail imej, css dan js di dalamnya STATIC_ROOT Folder tempat fail statik diletakkan apabila pergi dalam talian. Dengan python manage.py collectstatic, Django akan menyalin fail statik yang ditemui di bawah STAIC_DIRS ke STATIC_ROOT. Kerana apabila DEBUG fail konfigurasi ditetapkan kepada False, Django tidak akan memproses pemulangan fail statik secara lalai Fail ini dikumpulkan ke dalam folder melalui arahan kepada memudahkan pengurusan dan pembacaan pelayan web

Selepas menetapkan parameter di atas, anda boleh menggunakan fail statik dalam folder STATICFILES_DIRS dalam templat. Katakan tapak web ingin menambah gambar logo.png (letak pada mysite/static/img/logo.png) pada halaman, kami akan menulis ini pada templat:

...
    <img src='/static/img/logo.png'>
...

Anda sudah selesai. Tetapi jika suatu hari laluan halaman web fail statik terpaksa ditukar kepada /static_file/, anda perlu mencari laluan dan mengubah suai satu templat pada satu masa Tidakkah ini memenatkan? Perbandingan dengan "Django" adalah seperti berikut:

{% load staticfiles %}
...
    <img src="{% static 'img/logo.png' %}">
...

Sila ingat untuk memuatkan staticfiles dalam templat dahulu, kemudian gunakan teg {% static ...%}. Selepas pelarasan di atas, Django akan menukar {% static 'img/logo.png' %} kepada '/static/img/logo.png' apabila memproses fail statik, dan apabila anda perlu mengubah suai laluan fail statik, anda boleh mengubah suai settings.py dengan selamat dan berani dalam fail STATIC_URL. Tidak perlu risau tentang mengubah suai sejumlah besar templat.


Soalan yang saya jawab: Python-QA

洪涛

Jika anda merujuk kepada URL yang sepadan dengan View, anda boleh membaca dokumen ini
https://docs.djangoproject.com/en/1.9/intro/tutorial03/#removing-hardcoded-urls-in-templates

Jika anda merujuk kepada fail statik, seperti js, css, anda boleh mencapainya dengan menukar STATIC_URL dalam konfigurasi Django
https://docs.djangoproject.com/en/ 1.9/howto /static-files/

Peter_Zhu

.NET mempunyai urlrewrite keluar
Kedengarannya mengelirukan
Ringkasnya, tambah penapis sebelum output html
Gantikan semua alamat pautan bermula dengan /

黄舟

Apache nampaknya boleh menggunakan fail .htaccess untuk menulis semula alamat yang diakses, peraturan biasa

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan