用django写的程序,然后大概的问题是这样的.跟这个类似:
然后按照答案 改成 ./ 的话,首页是可以访问的,但是内页,文章页就不行了.网站的结构 :
./
默认生成的都是 / 的,我知道把所有的链接前面加一个 目录的名称 比如 /001/ 也是可以访问的,但是感觉这样不够智能 而且也不够方便,求快捷的方法?
/
/001/
认证0级讲师
以下の抜粋は、私が以前に書いた本からの抜粋です: It's Django
動的 Web サイトには、Web サイトで使用される画像、CSS、JS ファイルなどの静的ファイルも必要です。これらの静的ファイルをどのように管理し、使用するのでしょうか?まず、上位層 mysite の下に 2 つのフォルダー static と assets を追加します。 static フォルダーは、開発中に静的ファイルを配置するために使用されるディレクトリーであり、このディレクトリーの下に複数のサブディレクトリーを追加して、さまざまなファイルを配置できます。静的ファイルのタイプ (画像を配置するための img または CSS ファイルを配置するための css の設定など)。 assets は、Web サイトが実際にオンラインになっているときに静的ファイルが配置されるディレクトリです。この 2 つのディレクトリが分離されているのは、Web サーバーがオンラインになったときに静的ファイルの管理を引き継ぐ必要があるためです。
mysite
static
assets
img
css
次に、settings.py に移動して設定しましょう:
settings.py
ここでは合計 3 つのパラメータを設定します。詳細な説明は次のとおりです。
/static/
urls.py
BASE_DIR
python manage.py collectstatic
STAIC_DIRS
STATIC_ROOT
DEBUG
False
python manage.pycollectstatic
上記のパラメータを設定すると、テンプレートの STATICFILES_DIRS フォルダー内の静的ファイルを使用できるようになります。ウェブサイトがページに画像 logo.png (mysite/static/img/logo.png に配置) を追加したいと仮定すると、テンプレートに次のように記述します:
STATICFILES_DIRS
logo.png
mysite/static/img/logo.png
これで完了です。しかし、ある日、静的ファイルの Web ページのパスを /static_file/ に変更する必要が生じた場合、そのパスを見つけてテンプレートを 1 つずつ変更しなければならないのは面倒ではないでしょうか。 「Django」との比較は次のとおりです。
/static_file/
最初に staticfiles をテンプレートにロードしてから、タグ {% static ...%} を使用してください。上記の調整後、Django は静的ファイルを処理するときに {% static 'img/logo.png' %} を '/static/img/logo.png' に変換します。静的ファイルのパスを変更する必要がある場合、settings.py ファイル内の STATIC_URL を安全かつ大胆に変更できます。大量のテンプレートを変更することを心配する必要はありません。
staticfiles
{% static ...%}
{% static 'img/logo.png' %}
'/static/img/logo.png'
STATIC_URL
私が回答した質問: Python-QA
View に対応する URL を参照している場合は、このドキュメントを読むことができますhttps://docs.djangoproject.com/en/1.9/intro/tutorial03/#removing-hardcoded-urls-in-templates
js、css などの静的ファイルを参照している場合は、Django 設定 https://docs.djangoproject.com/en/ の STATIC_URL を変更することでこれを実現できます。 1.9/howto /static-files/
.NET にはアウトバウンド urlrewrite がありますわかりにくいです簡単に言うと、HTML 出力の前にフィルターを追加します/ で始まるすべてのリンク アドレスを置き換えます
Apache は、通常のルールである .htaccess ファイルを使用して、アクセスされたアドレスを書き換えることができるようです
以下の抜粋は、私が以前に書いた本からの抜粋です: It's Django
静的ファイルを使用する
動的 Web サイトには、Web サイトで使用される画像、CSS、JS ファイルなどの静的ファイルも必要です。これらの静的ファイルをどのように管理し、使用するのでしょうか?まず、上位層
mysite
の下に 2 つのフォルダーstatic
とassets
を追加します。static
フォルダーは、開発中に静的ファイルを配置するために使用されるディレクトリーであり、このディレクトリーの下に複数のサブディレクトリーを追加して、さまざまなファイルを配置できます。静的ファイルのタイプ (画像を配置するためのimg
または CSS ファイルを配置するためのcss
の設定など)。assets
は、Web サイトが実際にオンラインになっているときに静的ファイルが配置されるディレクトリです。この 2 つのディレクトリが分離されているのは、Web サーバーがオンラインになったときに静的ファイルの管理を引き継ぐ必要があるためです。次に、
リーリーsettings.py
に移動して設定しましょう:ここでは合計 3 つのパラメータを設定します。詳細な説明は次のとおりです。
/static/
に設定します。その後、/static/
で始まる Web ページのパスが考慮されます。 http://127.0.0.1/static/hello.png、http://127.0.0.1/static/hi.js などの静的ファイルとして、ただしhttp://127.0.0.1/restaurants/static/ の場合、静的ファイルurls.py
内のパスと一致します。BASE_DIR
で示されるフォルダーの下に/static/
,那麼在網頁路徑中以/static/
開始的便會被視為靜態檔,如: http://127.0.0.1/static/hello.png 、 http://127.0.0.1/static/hi.js ,但如果是 http://127.0.0.1/restaurants/static/ 則會匹配urls.py
中的路徑,而非靜態檔BASE_DIR
所指示的資料夾底下新增一個static
資料夾,並把圖檔,css,js放在裡面python manage.py collectstatic
,Django 會將STAIC_DIRS
下發現的靜態檔複製至STATIC_ROOT
下。由於當設定檔的DEBUG
設為False
後,Django 預設便不會處理回傳靜態檔了,藉由指令將這些檔案集合到一個資料夾下,方便網頁伺服器管理及讀取python manage.pycollectstatic
を使用すると、Django はSTAIC_DIRS
にある静的ファイルをSTATIC_ROOT
にコピーします。構成ファイルのDEBUG
がFalse
に設定されている場合、Django はデフォルトで静的ファイルの返却を処理しないため、これらのファイルは次のコマンドを通じてフォルダーに収集されます。 Web サーバーの管理と読み取りを容易にする上記のパラメータを設定すると、テンプレートの
リーリーSTATICFILES_DIRS
フォルダー内の静的ファイルを使用できるようになります。ウェブサイトがページに画像logo.png
(mysite/static/img/logo.png
に配置) を追加したいと仮定すると、テンプレートに次のように記述します:これで完了です。しかし、ある日、静的ファイルの Web ページのパスを
リーリー/static_file/
に変更する必要が生じた場合、そのパスを見つけてテンプレートを 1 つずつ変更しなければならないのは面倒ではないでしょうか。 「Django」との比較は次のとおりです。最初に
staticfiles
をテンプレートにロードしてから、タグ{% static ...%}
を使用してください。上記の調整後、Django は静的ファイルを処理するときに{% static 'img/logo.png' %}
を'/static/img/logo.png'
に変換します。静的ファイルのパスを変更する必要がある場合、settings.py
ファイル内のSTATIC_URL
を安全かつ大胆に変更できます。大量のテンプレートを変更することを心配する必要はありません。私が回答した質問: Python-QA
View に対応する URL を参照している場合は、このドキュメントを読むことができます
https://docs.djangoproject.com/en/1.9/intro/tutorial03/#removing-hardcoded-urls-in-templates
js、css などの静的ファイルを参照している場合は、Django 設定 https://docs.djangoproject.com/en/ の STATIC_URL
を変更することでこれを実現できます。 1.9/howto /static-files/
.NET にはアウトバウンド urlrewrite があります
わかりにくいです
簡単に言うと、HTML 出力の前にフィルターを追加します
/ で始まるすべてのリンク アドレスを置き換えます
Apache は、通常のルールである .htaccess ファイルを使用して、アクセスされたアドレスを書き換えることができるようです