我有一些当前从Amazon S3提供的静态文件。这显然不是有效的,因为每次我做一个小改动时我都不能collectstatic
。每当我开发时,我都想从我收集静态文件的项目中提供服务。项目结构看起来像这样:
myproject
-app
--templates
-myproject
--static
---app
----css
----js
----img
我的settings.py
看起来像这样:
STATIC_ROOT = 'staticfiles'
MEDIA_ROOT = os.path.join(BASE_DIR, 'mediafiles')
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static/app'),
)
AWS_HEADERS = {
'Expires': 'Thu, 31 Dec 2099 20:00:00 GMT',
'Cache-Control': 'max-age=94608000',
}
AWS_STORAGE_BUCKET_NAME = os.environ['AWS_STORAGE_BUCKET_NAME']
AWS_ACCESS_KEY_ID = os.environ['AWS_ACCESS_KEY_ID']
AWS_SECRET_ACCESS_KEY = os.environ['AWS_SECRET_ACCESS_KEY']
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME
if DEBUG:
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
STATIC_URL = '/static/'
else:
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
STATIC_URL = "https://%s/" % AWS_S3_CUSTOM_DOMAIN
STATICFILES_LOCATION = 'static'
MEDIAFILES_LOCATION = 'media'
MEDIA_URL = "https://%s/%s/" % (AWS_S3_CUSTOM_DOMAIN, MEDIAFILES_LOCATION)
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
我想要实现的是,如果我正在运行开发(当DEBUG
为真时)从项目中提供静态文件,而不是从S3获取。
在我urlpatterns
urls.py
的{{1}} + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
base.html
结束时。{/ p>
最后,在我的<!doctype html>
...
<link rel="stylesheet" href="{% static '/css/normalize.css'%}">
我有:
debug=True
如果我正在使用<link rel="stylesheet" href="/css/normalize.css">
运行,并且我查看了该页面的来源,我看到debug=False
该文件所在的位置<link rel="stylesheet" href="<AMAZON BUCKET>/css/normalize.css">
。如果我使用int countInterval(double *tab, double min, double max){
int i, count = 0;
for (i = 0; i < POINTS; i++){
if (tab[i] >= min && tab[i] < max) {
count++;
}
}
return count;
}
int *countWindow(double *tab){
// interval +1
double interv = INTERVALLES;
int *interval = (int*)malloc(sizeof(INTERVALLES)), i, debug = 0;
double lb = 2/interv;
double min = -1;
double max = min + lb;
if (debug==1) {
printf("lb : %f\n",lb);
}
for(i = 0; i < INTERVALLES; i++){
interval[i] = countInterval(tab, min, max);
if (debug==1) {
printf("min = %f - max = %f - count = %d\n", min, max, interval[i]);
}
min += lb;
max = min + lb;
}
return interval;
}
运行并查看来源,则会获得double *tab
。
我错过了什么在本地服务?
答案 0 :(得分:1)
您必须将相对路径传递给static
模板标记,而不使用标题斜杠:
{% static 'css/normalize.css' %}