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

时间:2015-08-13 06:55:57

标签: javascript python django static

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>

我正在以与上述js文件相同的方式加载我的CSS和图像。图像和CSS加载完美。任何想法为什么会发生这种情况以及我如何解决它?

提前致谢!

2 个答案:

答案 0 :(得分:0)

在开发模式下不使用STATIC_ROOT设置。它仅在使用'collectstatic'管理命令收集静态文件时使用。默认情况下,在每个已安装应用程序的子目录中查找静态文件,其名称为“static”,另外还有STATICFILES_DIRS设置中提到的任何目录。

此外,如果您的设置中某处有DEBUG = True,则无需专门将staticfiles_urlpatterns添加到urls.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

然后,试试这个:

<{1>}中的

(仅显示相关设置)

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/'

urls.py

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

index.html

答案 1 :(得分:0)

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