2017-07-24 110 views
0

使用Django支持的項目會自動將尾部斜線放在最後。所以:Django如何添加尾部斜線

foo.com/bar 

將成爲

foo.com/bar/ 

have read有一個CommonMiddleware類有一個APPEND_SLASH屬性與斜線可以控制的。我的項目導入CommonMiddleware確實:

MIDDLEWARE_CLASSES = (
    ... 
    'django.middleware.common.CommonMiddleware', 
) 

但是APPEND_SLASH是從來沒有在任何地方設置。該項目不斷添加尾部斜線。


問:沒有APPEND_SLASH得到默認情況下,如果導入CommonMiddleware設置爲True?有沒有什麼方法來控制尾部斜線?

回答

0

我會編譯一個完整的答案。它有2個方面:

1)如果導入CommonMiddleware到您的項目 - 這將使用其APPEND_SLASH屬性(這是Trueby default)。

2)跟蹤你的url文件(如果是類似^foo.com/bar/$的東西)。

如果您更改CommonMiddlewareAPPEND_SLASH(因爲瀏覽器很可能將其緩存),請不要忘記清除緩存。

3

我想你必須在你的django設置模塊中設置APPEND_SLASH

https://docs.djangoproject.com/en/1.11/ref/settings/#std:setting-APPEND_SLASH

+0

那麼它說,這個默認值是'真'。不過,我已經從項目中完全刪除了'CommonMiddleware',並且尾部的斜線仍然會被添加。 – Oleg

+2

@Oleg清除瀏覽器緩存。 CommonMiddleware返回一個永久重定向。 – knbk

+0

也許你有另一箇中間件添加它?您可以嘗試刪除除CommonMiddleware之外的所有中間件,並將APPEND_SLASH設置爲False並查看它是否按預期運行。 –