我正在使用Django 10,我不知道为什么在成功收集静态文件之后,当我尝试在部署模式下运行服务器(debug=False)时,会出现如下情况:
当我通过执行以下操作查找静态文件时:python manage.py findstatic /static/mysite/js/javascript.js
django.core.exceptions.SuspiciousFileOperation: The joined path (/static/mysite/js/javascript.js) is located outside of the base path component (/home/xxxx/.venvs/mysite/local/lib/python2.7/site-packages/django/contrib/admin/static)
我用一个虚拟的env“mysite”运行这个。
在设置中。py:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static") (i tried also just only 'static')
MEDIA_ROOT = BASE_DIR + '/mysite/media'
MEDIA_URL = '/media/'
myurl.py:
urlpatterns = [
url(r'', include('mysite.urls')),
]
urlpatterns += staticfiles_urlpatterns()
这对我来说是新的,我也已经做了一个django网站,它从来没有发生过这样的错误。为什么不考虑我的静态根路径?另一方面,collectstatic工作良好。如果我在运行服务器时调试了一个true,它的工作就像一个符咒。
findstatic
的位置参数是传递给static
的参数,用于在模板中呈现特定的静态文件。您看到的错误是因为您使用了绝对路径,而不是要传递给模板中的static
函数的参数。你确定你不是说:你可以参考的文件
或者
你可以参考的文件
供参考:
注意,django的staticfiles应用程序是not supposed to be used in production。在生产环境中,您应该使用web服务器来提供基于静态文件的服务。e、 例如,对于nginx,可以包括a block like this:
要调试静态文件,请在运行collectstatic之后检查
STATIC_ROOT
目录,并确保文件存在。如果是,请确保您的web服务器配置为正确服务于静态文件目录。相关问题 更多 >
编程相关推荐