【发布时间】:2015-03-09 16:15:30
【问题描述】:
在我尝试添加此库之前,我的静态文件正常工作 https://github.com/ierror/django-js-reverse
我按照页面上的说明进行操作,但 Django 仍然找不到新资源。
来自settings.py
STATIC_ROOT = 'staticfiles'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static/'),
)
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_js_reverse',
...,
)
在我的模板中
<script src="{% static 'django_js_reverse/js/reverse.js' %}"></script>
我的目录结构是这样的
staticfiles/
admin/
dist/
django_js_reverse/
js/
reverse.js
运行后
python manage.py collectstatic
python manage.py runserver
我也尝试根据库说明运行以下内容,但没有成功
./manage.py collectstatic_js_reverse
这是我尝试加载页面时 runserver 的输出。
[08/Mar/2015 19:12:33] "GET /static/custom.css HTTP/1.1" 304 0
[08/Mar/2015 19:12:33] "GET /static/dist/css/bootstrap.min.css HTTP/1.1" 304 0
[08/Mar/2015 19:12:33] "GET /static/django_js_reverse/js/reverse.js HTTP/1.1" 404 1697
[08/Mar/2015 19:12:33] "GET /static/dist/js/bootstrap.min.js HTTP/1.1" 304 0
[08/Mar/2015 19:12:33] "GET /static/csrf.js HTTP/1.1" 304 0
[08/Mar/2015 19:12:33] "GET /static/custom.js HTTP/1.1" 304 0
我不知道问题出在哪里。静态文件设置显然设置正确,因为所有其他文件都加载正常。我一定遗漏了一些明显的东西。任何帮助将不胜感激\
更新
我尝试将 reverse.js 文件移动到 dist/ 但它仍然返回 404。
所有文件的权限都是一样的
ls -la staticfiles/dist/js
-rw-r--r-- 1 adam staff 67155 Mar 8 15:06 bootstrap.js
-rw-r--r-- 1 adam staff 35601 Mar 8 15:06 bootstrap.min.js
-rw-r--r-- 1 adam staff 484 Mar 8 15:06 npm.js
-rw-r--r-- 1 adam staff 3258 Mar 10 10:31 reverse.js
【问题讨论】:
-
如果您正在运行
runserver,collectstatic将无济于事。staticfiles是您的STATIC_ROOT还是STATICFILES_DIRS之一?尝试将reverse.js文件复制到dist,相应地更改脚本src 并检查是否有效。 -
有时您可能会遇到 gif 类型的文件的问题。尝试 chmod +x 他们 :)
-
你能发布你的
.gitignore吗? -
另外,您是否在 urls.py 中添加了
urlpatterns = patterns('', url(r'^jsreverse/$', 'django_js_reverse.views.urls_js', name='js_reverse'), )? -
是的,我试过了,结果相同。如果我将它用作静态文件,我不应该这样做。如果我添加该 url 模式并将我的模板更改为 {% url 'js_reverse' %} 那么它可以通过视图工作。我仍然不明白为什么找不到 satic 文件。
标签: python django django-staticfiles