使用后端作为Django从URL的URL中删除#的SEO

时间:2017-11-19 05:15:49

标签: angularjs django seo

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

因此,除非使用" F5"刷新页面,否则该应用程序可以正常工作。

所以,如果单击按钮,则http://127.0.0.1:8000/account有效但刷新页面会在Page not found文件

中搜索服务器urls.py时提供currentScore

有人可以建议我解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

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

假设您的包含Angular应用程序的页面位于名为index的视图上。然后只需将此网址指向它:

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

或将所有网址指向您的视图(如果您不需要处理任何其他网址而没有角度):

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

或类似

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

您并不是唯一遇到此问题的人:请参阅thisthis。 正如您所看到的,这不是特定于Django的麻烦,而是一些常规的客户端 - 服务器工作流程。

答案 1 :(得分:0)

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