Django找不到与特定应用程序无关的静态文件

时间:2017-03-04 05:48:57

标签: django

我想将静态文件放在任何应用程序之外的文件夹中。这是文件结构。

     mysite
       |---assets
             |---css
             |---js
             |---images   
       |---companyinfo 
             |---views.py
             |---models.py
             |---templates
                     |---index.html
                     |---recruit.html
             |--- ....
       |---mysite
             |---urls.py
             |---settings.py
             |--- ....
       |---manage.py 
       |--- ....

settings.py如下所示。

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_URL = '/assets/'  
STATICFILES_DIRS = [
   os.path.join(BASE_DIR, "assets"),
]

这就是我调用模板文件中静态文件的方式,

 <link href="assets/css/theme-style.css" rel="stylesheet">
mysite文件夹下的

urls.py如下所示。我没有在companyinfo文件夹下定义urls.py。

from companyinfo import views as civiews

urlpatterns = [
url(r'^$', civiews.index, name='index'),
url(r'^recruit/$', civiews.recruit, name='recruit'),
]

views.py只是两个呈现html页面的函数。静态文件的URL在两个html页面中是相同的 问题是索引页面加载了所有css和js文件,但是新页面找不到那些文件。问题可能是什么?我正在使用Django1.10 提前谢谢!

1 个答案:

答案 0 :(得分:1)

请更改此内容:

<link href="assets/css/theme-style.css" rel="stylesheet">

到此:

<link href="{% url 'css/theme-style.css %}" rel="stylesheet">