代码之家  ›  专栏  ›  技术社区  ›  Shashank Vivek

从angularJS的url中删除#,用于搜索引擎优化,后端为Django

  •  2
  • Shashank Vivek  · 技术社区  · 8 年前

    我知道从AngularJS中删除哈希非常简单,但问题是后端在Django中。

    因此,除非使用“F5”刷新页面,否则应用程序将正常工作。

    所以 http://127.0.0.1:8000/account 如果点击了按钮,但刷新页面会让我 Page not found 当服务器在中搜索时 urls.py 文件

    有人能给我建议一些解决方法吗?

    2 回复  |  直到 8 年前
        1
  •  2
  •   Alex Mozharov    8 年前

    一切都是对的。刷新页面时,首先在服务器上处理请求(并转到django路由器)。所以服务器应该知道它应该返回这个URL的角度页面。

    index . 然后只需将此url指向它:

    urlpatterns = [
        url(r'^account/$', index), 
    ]
    

    或者将所有url指向您的视图(如果您不需要在没有角度的情况下处理任何其他url):

    //something like this, not really sure about the regex
    urlpatterns = [
        url(r'^.*$', index), 
    ]
    

    或者类似的

    urlpatterns = [
        url(r'^/account/.*$', index), 
    ]
    

    你并不是唯一一个遇到这个问题的人:看到了吗 this this . 正如您所见,这不是Django特有的问题,而是一些通用的客户机-服务器工作流。

        2
  •  0
  •   gaurav bankoti    8 年前

    使用Locationprovider而不是routeProvider,并启用html5。 https://docs.angularjs.org/api/ng/provider/ $locationProvider