2016-07-29 10 views
0

私はサイトをDjangoフレームワークで設定しました。私は次のようにマップするために、このサイトの一部としてURLを希望:Djangoの複数のアプリケーションとurls.py

www.site.com     -> main.html 
www.site.com/    -> main.html 
www.site.com/projects  -> projects.html 
www.site.com/projects/  -> projects.html 
www.site.com/projects/web -> web.html 
www.site.com/projects/web/ -> web.html 
www.site.com/projects/mobile -> mobile.html 
www.site.com/projects/mobile/-> mobile.html 
www.site.com/projects/whatev -> 404.html 
www.site.com/projects/whenev -> 404.html 
www.site.com/projects/web/w -> 404.html 

私は現在、独自のURLをDjangoのアプリとして設定メインのサイトを持っており、サイトのプロジェクトの一部は、そのように設定します自分のアプリ。マッピングは次のとおりです。

プロジェクトアプリの

サイト/ urls.py

urlpatterns = [ 
    url(r'^$', portfolio_views.about_page, name = "aboutPage"), 
    url(r'^about$', portfolio_views.about_page, name = "aboutPage"), 
    url(r'^experience$', portfolio_views.experience_page, name = "experiencePage"), 
    url(r'^projects', include('projectsApp.urls')), 
    url(r'^projects/', include('projectsApp.urls')), 
    url(r'^publications$', portfolio_views.publications_page, name = "publicationsPage"), 
    url(r'^qualifications$', portfolio_views.qualifications_page, name = "qualificationsPage"), 
    url(r'^contact$',portfolio_views.contact_page, name="contactPage"), 
    url(r'^submitted$', portfolio_views.contact_submitted_page, name = "submittedPage"), 
    url(r'^admin/', admin.site.urls), 
] 

プロジェクト/ urls.py

urlpatterns = [ 
     url(r'^$', views.projects_page, name='projectPage'),#site/projects 
     url(r'^web$',views.web_project, name='webProject') #site/projects/web 
    ] 

は現在、以下のURL:

www.site.com     -> main.html 
www.site.com/    -> main.html 
www.site.com/whatever  -> 404.html (with css formatting) 
www.site.com/projects  -> projects.html 
www.site.com/projects/  -> projects.html (without css formatting) 
www.site.com/projects/web -> 404.html (without css formatting) 
www.site.com/projects/web/ -> 404.html (without css formatting) 
www.site.com/projects/web/whatev -> 404.html (without css formatting) 

サイトのアプリケーション内に/ static/dirにCSSの書式があります。

なぜ私のURLパターンが与えられているのか分かりませんが、私はプロジェクトアプリから/ webにアクセスできません。私のprojects.htmlの中には、404.htmlを生成するweb.htmlを 'projects/web'として参照するリンクがあります。メインアプリケーションの外に絶対アドレスを常にリンクする必要がありますか?私。プロジェクトアプリで提供されるファイルはwww.site.com/projects/linkとなりますか?

答えて

0

スラッシュのないURL(例:r'^projects')にincludeを使用することは非常に珍しいことです。つまり、/projectsweb/projects/webのコンテンツを利用できるようにしていることを意味します。

私はあなたのurl設定から末尾にスラッシュを入れずにインクルードを削除しようとします。

APPEND_SLASHの設定がTrueで共通のミドルウェアがインストールされている場合、DjangoはスラッシュのないURLからスラッシュ付きのURLにリダイレクトします。たとえば、www.site.com/projectsからwww.site.com/projects/にリダイレクトされます。

これは、CSSの書式設定を修正する可能性があります。そうでない場合は、単純なURL設定を使用するため、他の問題を見つけるのが簡単になります。

関連する問題