2016-02-06 67 views
1

静态文件夹映射我有以下文件结构,我的Django应用程序Django的 - 在urls.py

|-myapp 
|---static 
|-----adminapp 
|-----clientapp 
|-----commonapp 
|-----css 
|-----fonts 
|-----js 
|---templates 
|-----administration 
|-------index.html 
|-----client 
|-------index.html 

这是因为我想建立两个角的应用程序,一个用于用户(static/clientapp),一个用于管理员(static/adminapp )。

templates/administration/index.htmltemplates/client/index.html是相似的,并包含类似的代码:

<head> 
    <script src="static/js/angular.js"></script> 
    <script src="static/adminapp/app.js"></script> 
</head> 
<body ng-app="adminapp"></body> 

链接到我的管理和客户端应用程序应该是:

http://example.com/administration/ 
http://example.com/client/ 

的问题是我应该补充什么进入urls.py让这两个角度应用程序都可以访问相同的static文件夹。

它必须是这样的:

url(r'^administration/static/$', STATIC_ROOT), 
url(r'^client/static/$', STATIC_ROOT) 

但我Django的新手,我不知道如何正确地定义它。

+0

我不明白你的问题。对于静态文件使用django的url路由器是非常不寻常的。开发服务器只需要一个根文件夹,然后根据目录结构提供静态内容。我不清楚你想要做什么。 –

回答

1

在生产中,你不应该让Django处理静态文件,所以应该在你的nginx/appache配置文件中为administation/static/client/static/设置正确的路径。

用于开发目的,您可以添加这样的事情:

if settings.DEBUG: 
    urlpatterns += [ 
     url(r'^administation/static/(?P<path>.*)$', ' django.views.static.serve', {'document_root': settings.ADMIN_STATIC_ROOT}), 
     url(r'^client/static/(?P<path>.*)$', ' django.views.static.serve', {'document_root': settings.CLIENT_STATIC_ROOT}), 
    ] 

然后你只需要定义您的设置ADMIN_STATIC_ROOTCLIENT_STATIC_ROOT

0

解决的办法是在网址中使用/静态资源。

例如

<script src="/static/js/angular.js"></script> 

然后,应用程序基址的网址无关紧要。