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

问题描述:

我想将静态文件放在任何应用程序之外的文件夹中。这是文件结构。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"), 
] 

这是我如何调用模板文件的静态文件,mysite的文件夹下

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

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页面的两个函数。这两个html页面中的静态文件的url是相同的。
问题是索引页面可以很好地加载所有的css和js文件,但recruit页面找不到这些文件。问题可能是什么?我正在使用Django1.10。
在此先感谢!

+0

这是奇怪的。请显示,你如何从模板中调用静态文件。 –

+0

谢谢。我已经添加了如何在模板中调用静态文件。 – lingyan

+0

如果我的回答帮助你接受它,请。这是一个在*中的好习惯! –

请更改此:

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

这样:

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

+0

谢谢!有用。另一个相关的问题是我的一个js文件也有一个硬编码路径:'var PLUGINS_LOCALPATH ='./assets/plugins /';' 如何将它更改为与模板文件类似的路径? – lingyan

+0

你不能!唯一的解决方案是在主HTML中创建一个js对象,将URL传递给下面的js文件。但对于这样的问题,你应该更好地创建一个单独的! –