繁体   English   中英

js文件没有加载到django模板中

[英]js files are not loading in django template

我的 django 项目有点问题。 我的静态文件正在加载(img 和 css),而 js 文件没有。 我在我的应用程序中创建了一个静态文件夹,其结构如下static/js/my_app/ ,其中包含我的 js 文件。

这是我使用 js 脚本的模板的一部分:

<!-- Scripts -->
<script src="{% static 'js/landing/jquery.min.js' %}"></script>
<script src="{% static 'js/landing/jquery.scrolly.min.js' %}"></script>
<script src="{% static 'js/landing/jquery.dropotron.min.js' %}"></script>
<script src="{% static 'js/landing/jquery.scrollex.min.js' %}"></script>
<script src="{% static 'js/landing/util.js' %}"></script>
<!--[if lte IE 8]><script src="assets/js/ie/respond.min.js"></script><![endif]-->
<script src="{% static 'js/landing/main.js' %}"></script>

这是我的 settings.py 文件中处理静态文件的部分:

STATIC_URL = '/static/'

STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)

谢谢

通常,标准建议是使用app_name / static / app_name / js / file.js

然后,在模板中,您将只使用:{%static'app_name / js / file_name.js'%},前提是正确设置了static的其他所有内容。

在您的配置中,您完成了static / js / app_name而不是static / app_name / js。

如果遵循此步骤,则可以在模板中直接调用js或CSS文件/static/css/a.css,请确保collectstatic方法

import os
def root(x):
    return os.path.join(os.path.abspath(os.path.dirname(__file__)), '..',x)
MEDIA_ROOT = root('media')
MEDIA_URL = '/media/'
STATIC_ROOT = root('staticstorage')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    root('static'),
)
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'dajaxice.finders.DajaxiceFinder',
)
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
    'django.template.loaders.eggs.Loader',

)
TEMPLATE_DIRS = (
    root('templates')
)
TEMPLATE_CONTEXT_PROCESSORS = (

    "--------------------------------------"
    'django.core.context_processors.media',
    'django.core.context_processors.static',
)

url.py

from django.conf.urls import patterns, include, url
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.conf import settings
from django.conf.urls.static import static
admin.autodiscover()

urlpatterns = patterns('',
)

urlpatterns += patterns('',
    url(r'^static/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.STATIC_ROOT, 'show_indexes': False}),
    url(r'^media/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),

) 

urlpatterns += staticfiles_urlpatterns()

解决方案不合逻辑,但如果你这样做,它可能是正确的在同一个js目录中,创建另一个名为js的目录并将你的文件传输到它现在运行你的站点,也许它已经改变在新目录中创建另一个文件名为js 并将文件传输给它再次保存并运行它意味着,现在你的文件应该在 js/js/js/file.js 现在把文件放回主目录并运行代码,也许它会被修复我说的没有意义,但是我做到了,而且成功了另外,必须在html文件中正确链接你移动的文件(每次更改js文件的路径后)。 我从 js 文件计算,但你应该从包含你的 JavaScript 代码的文件计算

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM