javascript js文件不在django模板中加载

ekqde3dh  于 2022-12-25  发布在  Java
关注(0)|答案(3)|浏览(139)

我的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'),
)

谢啦,谢啦

mwg9r5ms

mwg9r5ms1#

通常,标准建议是使用应用程序名称/静态/应用程序名称/js/文件. js
然后在模板中,您只需用途:{% static 'app_name/js/file_name.js' %},前提是已正确设置静态的其他所有内容。
在您的配置中,您使用了static/js/app_name,而不是static/app_name/js。

66bbxpm5

66bbxpm52#

如果你遵循这个步骤,意味着你可以直接调用你的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()
rsaldnfx

rsaldnfx3#

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

相关问题