背景
我的setting.py
STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS = (
('assets/css','/var/www/mongo_conprima/static_files/css/'),
('assets/js','/var/www/mongo_conprima/static_files/js/') )
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
#'django.contrib.staticfiles.finders.AppDirectoriesFinder',
# 'django.contrib.staticfiles.finders.DefaultStorageFinder',
)
我能够以这种方式在模板中提供静态文件
<script src="{% static "assets/SlickGrid-master/lib/firebugx.js" %}"></script>
问题: 我的js文件中有图像,相对路径无法像这样加载
/var/www/mongo_conprima/static_files/SlickGrid-master/slick.formatters.js:
55
56 function CheckmarkFormatter(row, cell, value, columnDef, dataContext) {
57: return value ? "<img src='/images/tick.png'>" : "";
58 }
59 })(jQuery);
错误: 我在控制台中遇到以下错误
GET http://127.0.0.1:8000/images/tick.png 404 (NOT FOUND) slick.grid.js:2567
答案 0 :(得分:1)
您可以在模板中使用全局变量并在js文件中使用它
<强>模板:强>
<html>
<script>
var GLOBAL_PATH = '{{ STATIC_PATH }}';
</script>
</html>
<强> JS:强>
return value ? "<img src='" + GLOBAL_PATH + "/tick.png'>";
答案 1 :(得分:0)
使用函数内部的静态标记,因此javascript应该看起来像
function CheckmarkFormatter(row, cell, value, columnDef, dataContext) {
return value ? "<img src='{% static "/images/tick.png" %}'>" : "";
}
静态标记将为您提供完整的静态文件路径。
答案 2 :(得分:0)
以下问题回答了针对此问题的几个解决方案:https://stackoverflow.com/a/6574670/2487431
您可以向网络服务器添加配置,将无形中的路径重定向到正确的静态路径,也可以使用urls.py添加重定向。
该链接深入介绍了如何执行此操作。希望这可以帮助将来的某个人。