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。
在此先感谢!
请更改此:
<link href="assets/css/theme-style.css" rel="stylesheet">
这样:
<link href="{% url 'css/theme-style.css %}" rel="stylesheet">
谢谢!有用。另一个相关的问题是我的一个js文件也有一个硬编码路径:'var PLUGINS_LOCALPATH ='./assets/plugins /';' 如何将它更改为与模板文件类似的路径? – lingyan
你不能!唯一的解决方案是在主HTML中创建一个js对象,将URL传递给下面的js文件。但对于这样的问题,你应该更好地创建一个单独的! –
这是奇怪的。请显示,你如何从模板中调用静态文件。 –
谢谢。我已经添加了如何在模板中调用静态文件。 – lingyan
如果我的回答帮助你接受它,请。这是一个在StackOverflow中的好习惯! –