django下页面如何相互访问?A.html访问B.html

bandaoyu 2018-06-02 05:41:56
如题:

A.html和B.html在同一目录下,A.html中有个链接到B.html的链接 <a href="B.html">测试连接</a>

我已经可以通过浏览器访问到A页面,点击“测试连接” 直接报错 page not found


django下页面如何相互访问? 既然在同一目录下为什么不可以用 相对地址./B.html 访问B.html呀?


...全文
1771 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_44522579 2019-06-27
  • 打赏
  • 举报
回复 1
一个没看懂。
混沌鳄鱼 2018-06-07
  • 打赏
  • 举报
回复
引用 10 楼 bandaoyu 的回复:
[quote=引用 9 楼 xpresslink 的回复:] A.html和B.html在同一目录下,A.html中有个链接到B.html的链接 <a href="B.html">测试连接</a> 我已经可以通过浏览器访问到A页面,点击“测试连接” 直接报错 page not found django下页面如何相互访问? 既然在同一目录下为什么不可以用 相对地址./B.html 访问B.html呀? 页面是不含py代码的页面,但是前端有ajax请求数据,所以是需要django的。 你这个问题和原来的问题不是一回事了吧?
是一回事,核心问题还是: django下如何实现 同级目录下的A.html和B.html,如何实现A.html中 可以用 相对地址./B.html 访问B.html[/quote] 这个当然是可以的 Django的提供一个专门处理静态文件的内置视图0 只要给静态目录配个路由就可以了。 修改一下项目的urls.py加下面两句。

from django.views.static import serve

urlpatterns += [ url(r'static-html/(?P<path>.*)$', serve, {'document_root': 'your/real/path/on/server',}), ]
bandaoyu 2018-06-07
  • 打赏
  • 举报
回复
引用 9 楼 xpresslink 的回复:
A.html和B.html在同一目录下,A.html中有个链接到B.html的链接 <a href="B.html">测试连接</a> 我已经可以通过浏览器访问到A页面,点击“测试连接” 直接报错 page not found django下页面如何相互访问? 既然在同一目录下为什么不可以用 相对地址./B.html 访问B.html呀? 页面是不含py代码的页面,但是前端有ajax请求数据,所以是需要django的。 你这个问题和原来的问题不是一回事了吧?
是一回事,核心问题还是: django下如何实现 同级目录下的A.html和B.html,如何实现A.html中 可以用 相对地址./B.html 访问B.html
混沌鳄鱼 2018-06-06
  • 打赏
  • 举报
回复
A.html和B.html在同一目录下,A.html中有个链接到B.html的链接 <a href="B.html">测试连接</a> 我已经可以通过浏览器访问到A页面,点击“测试连接” 直接报错 page not found django下页面如何相互访问? 既然在同一目录下为什么不可以用 相对地址./B.html 访问B.html呀? 页面是不含py代码的页面,但是前端有ajax请求数据,所以是需要django的。 你这个问题和原来的问题不是一回事了吧?
bandaoyu 2018-06-06
  • 打赏
  • 举报
回复
引用 6楼混沌鳄鱼 的回复:
[quote=引用 5 楼 bandaoyu 的回复:] [quote=引用 4 楼 xpresslink 的回复:] 要是非想这样弄也是可以的。 先要在settings.py 里面设置

INSTALLED_APPS = [
    ...,
    'django.contrib.staticfiles',
    ...,
]

STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

把B.html文件放在 project/static/demo/B.html 在A.html里的开头加 {% load staticfiles %} <a href="{% static "demo/menu_demo.html" %}">static_page_B</a> 但是严格地说这个算是动态页面。
里面有python代码,已经是动态网页了,唉 这样通用性就差了很多,而且从javaweb 移植过来的html网页又要大修改,不是好方法。还有别的办法吗[/quote] 我都说了,你这个需求根本用不上Django,直接在nginx里面配置一下 alias 到放网页的物理目录就可以了。[/quote]页面是不含py代码的页面,但是前端有ajax请求数据,所以是需要django的。
bandaoyu 2018-06-05
  • 打赏
  • 举报
回复
引用 4 楼 xpresslink 的回复:
要是非想这样弄也是可以的。 先要在settings.py 里面设置

INSTALLED_APPS = [
    ...,
    'django.contrib.staticfiles',
    ...,
]

STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

把B.html文件放在 project/static/demo/B.html 在A.html里的开头加 {% load staticfiles %} <a href="{% static "demo/menu_demo.html" %}">static_page_B</a> 但是严格地说这个算是动态页面。
里面有python代码,已经是动态网页了,唉 这样通用性就差了很多,而且从javaweb 移植过来的html网页又要大修改,不是好方法。还有别的办法吗
混沌鳄鱼 2018-06-05
  • 打赏
  • 举报
回复
实现非要用Python也可以,Python标准库里有一个简易HTTP服务器模块。完成的功能和nginx一样只是单线程。 在命令行改变工作目录到你的网页所有路径。 python3 -m http.server 就行了,直接就可以 http://127.0.0.0/B.html
混沌鳄鱼 2018-06-05
  • 打赏
  • 举报
回复
引用 5 楼 bandaoyu 的回复:
[quote=引用 4 楼 xpresslink 的回复:] 要是非想这样弄也是可以的。 先要在settings.py 里面设置

INSTALLED_APPS = [
    ...,
    'django.contrib.staticfiles',
    ...,
]

STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

把B.html文件放在 project/static/demo/B.html 在A.html里的开头加 {% load staticfiles %} <a href="{% static "demo/menu_demo.html" %}">static_page_B</a> 但是严格地说这个算是动态页面。
里面有python代码,已经是动态网页了,唉 这样通用性就差了很多,而且从javaweb 移植过来的html网页又要大修改,不是好方法。还有别的办法吗[/quote] 我都说了,你这个需求根本用不上Django,直接在nginx里面配置一下 alias 到放网页的物理目录就可以了。
混沌鳄鱼 2018-06-04
  • 打赏
  • 举报
回复
本质上你这个问题和django无关。或者是你问题使用概念错误。 静态页面处理通常是由nginx等web server来处理的,要配置静态文件url的解析转发。 django是处理动态内容的,当然了要是不嫌性能低也可以处理静态内容。但是对每个页面要在urls.py要配置路由。 /B.html 这个url在路由表里面要加,并且要有对应的视图函数,最简单也要使用个TemplateView才能解析。
morningbzy 2018-06-04
  • 打赏
  • 举报
回复
这并不是两个HTML互相访问,而是互相跳转。django的urlpattern有写B页面吗?
混沌鳄鱼 2018-06-04
  • 打赏
  • 举报
回复
引用 3 楼 bandaoyu 的回复:
[quote=引用 2 楼 xpresslink 的回复:] 本质上你这个问题和django无关。或者是你问题使用概念错误。 静态页面处理通常是由nginx等web server来处理的,要配置静态文件url的解析转发。 django是处理动态内容的,当然了要是不嫌性能低也可以处理静态内容。但是对每个页面要在urls.py要配置路由。 /B.html 这个url在路由表里面要加,并且要有对应的视图函数,最简单也要使用个TemplateView才能解析。
我现在就是不需要要求性能多高,所以用django作为http协议解析器,也就是处理静态网页的,所以最终还是django的问题。 不是吧,每个都有配? 不可能的吧,相互转的页面那么多,那url配置文件得写疯了。javaweb中的 tomcat中就比django好多了,不需要那么麻烦呀 [/quote] 要是非想这样弄也是可以的。 先要在settings.py 里面设置

INSTALLED_APPS = [
    ...,
    'django.contrib.staticfiles',
    ...,
]

STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

把B.html文件放在 project/static/demo/B.html 在A.html里的开头加 {% load staticfiles %} <a href="{% static "demo/menu_demo.html" %}">static_page_B</a> 但是严格地说这个算是动态页面。
bandaoyu 2018-06-04
  • 打赏
  • 举报
回复
引用 2 楼 xpresslink 的回复:
本质上你这个问题和django无关。或者是你问题使用概念错误。 静态页面处理通常是由nginx等web server来处理的,要配置静态文件url的解析转发。 django是处理动态内容的,当然了要是不嫌性能低也可以处理静态内容。但是对每个页面要在urls.py要配置路由。 /B.html 这个url在路由表里面要加,并且要有对应的视图函数,最简单也要使用个TemplateView才能解析。
我现在就是不需要要求性能多高,所以用django作为http协议解析器,也就是处理静态网页的,所以最终还是django的问题。 不是吧,每个都有配? 不可能的吧,相互转的页面那么多,那url配置文件得写疯了。javaweb中的 tomcat中就比django好多了,不需要那么麻烦呀

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧