姜戈 |无法访问没有尾随“/”的 URL

Posted

技术标签:

【中文标题】姜戈 |无法访问没有尾随“/”的 URL【英文标题】:Django | Cannot access URLs without a trailing "/" 【发布时间】:2021-05-09 08:03:52 【问题描述】:

我有一个 Django 应用程序,由于某种原因,我无法在没有尾随“/”的情况下加载我的 URL

我在实践中创建了其他 Django 应用程序,这不是问题,当我进入我的管理页面时我不需要一个,所以我无法弄清楚这里的设置有什么问题。

这是我的主要 URL 文件:

urlpatterns = [
    path('app/', include('app.urls')),
]

这是我的应用的 URL 文件:

urlpatterns = [
    path('subapp/', views.subapp, name='subapp'),
]

还有我的视图文件:

def subapp(request):
    return render(request, 'app/subapp.html', 'title': 'subapp')

当我将我的 URL 输入为“localhost:8000/app/subapp/”时,它会将我带到正确的页面。

但是,当我将我的 URL 输入为“localhost:8000/app/subapp”时,我得到一个 404 并带有以下调试错误消息:Directory indexes are not allowed here.

我做错了什么?

【问题讨论】:

您的路径 subapp/ 末尾有一个斜线。 @KlausD。是的,但我有 CommonMiddleware,所以它应该附加斜线,不是吗?我希望有一个斜杠,因为问题是,如果我去“localhost:8000/app”没有斜杠,它也不会加载......在我的其他 Django 项目中,斜杠被附加。跨度> 【参考方案1】:

请检查 settings.py 文件中的 APPEND_SLASH 设置。

还请检查该链接:

django urls without a trailing slash do not redirect

【讨论】:

我已经检查过了,但是对于我的具体用例,这是因为我缺少MEDIA_ROOT = os.path.join(BASE_DIR, 'media')MEDIA_URL = '/media/'【参考方案2】:

对于我的特定用例,这是因为我需要在我的 settings.py 中添加以下内容:

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

这解决了我的问题。

【讨论】:

以上是关于姜戈 |无法访问没有尾随“/”的 URL的主要内容,如果未能解决你的问题,请参考以下文章

Instagram 无法访问回调 URL

Instagram 无法访问回调 URL

无法访问 Agora URL

无法在ReactJS构建中手动访问URL

XAMPP:无法从智能手机(iPhone)加载访问 url 的资源

创建远程 URL 连接时无法访问 URI - Oracle MAF