CSS和图像静态文件加载,但js不是

CSS and images static files are loading however js are not

本文关键字:js 不是 加载 文件 图像 静态 CSS      更新时间:2023-09-26

urls.py:

from django.conf.urls import url, patterns
from registration import views
from django.conf import settings
from django.conf.urls.static import static
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from registration.views import index
urlpatterns = patterns('',
    # ex: /polls/,
     url(r'^index/', index.as_view(), name = 'index'),
)+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += staticfiles_urlpatterns()

local.py

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
PROJECT_DIR  = os.path.dirname(__file__) 
MEDIA_ROOT = os.path.join(PROJECT_DIR, 'media')
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.path.join(PROJECT_DIR, 'staticfiles'),
)

index.html

<script src="{% static 'app_name/js/highcharts.js' %}"></script>
<script src="{% static 'app_name/js/highcharts-3d.js' %}"></script>
<script src="{% static 'app_name/js/exporting.js' %}"></script>

我正在加载我的css和图像在相同的方式如上所述的上述js文件。图像和CSS加载非常好。知道为什么会发生这种情况吗?我该如何解决?

提前感谢!

在开发模式下不使用STATIC_ROOT设置。它只在使用'collectstatic'管理命令收集静态文件时使用。默认情况下,静态文件将在每个已安装应用程序的名为"static"的子目录以及STATICFILES_DIRS设置中提到的任何目录中查找。

同样,如果您在设置中有DEBUG=True,则不需要特别将staticfiles_urlpatterns添加到url .py文件中。这是自动完成的。

假设如下:

  • 你的目标是在一个默认的django项目中寻找静态文件。所以你在INSTALLED_APPS中没有一个单独的django 'app'设置。
  • 你的indexview可以找到你的index.html模板,你没有邮报》
  • 你的视图你的项目目录结构看起来像这样:

文件夹结构:

myproject
-manage.py
-myproject
-myproject>__init__.py
-myproject>urls.py
-myproject>settings.py
-myproject>wsgi.py
-staticfiles
-staticfiles>js>highcharts.js

然后,试试这个:

settings.py(只显示相关设置)

DEBUG=True
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'staticfiles'),
)
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'

In urls.py:

from django.conf.urls import url
urlpatterns = patterns('',
    url(r'^index/', index.as_view(), name = 'index'),
)

and in index.html:

{% load staticfiles %}
<script src="{% static 'js/highcharts.js' %}"></script>

问题是javascript文件中的一些语法错误。解决。谢谢大家的帮助。