这是一个非常核心的问题。我有一个在 nginx/gunicorn 配置中运行的 django 应用程序。Nginx 负责代理到gunicorn,但也直接服务于项目的静态文件。
问题是,当我更新静态文件时,浏览器不会加载最新版本。有时刷新会修复它,但有时它需要清除缓存。(我应该提到我正在使用 require.js,这没有帮助)。
为了缓解这个问题,我正在做这个技巧:
VERSION = '2.03'
STATIC_URL = '/static/' + VERSION + '/'
STATIC_ROOT = BASE_DIR + '/static/' + VERSION + '/'
Run Code Online (Sandbox Code Playgroud)
这样,当我更改静态文件时,我只需修改版本。但出于各种原因,我需要停止这样做。有没有办法配置 nginx 以便在可用时更好地提供更新的静态文件?
我只是不确定浏览器或 nginx 是否应该受到指责。
更新:这是我的 nginx 配置,删除了注释:
upstream mycoolsite_server {
server unix:/webapps/mycoolsite/run/gunicorn.sock fail_timeout=0;
}
server {
listen 80;
server_name www.mycoolsite.com;
return 301 http://mycoolsite.com$request_uri;
}
server {
listen 80;
server_name mycoolsite.com 42.42.42.42;
client_max_body_size 4G;
access_log /webapps/mycoolsite/logs/nginx-access.log;
error_log /webapps/mycoolsite/logs/nginx-error.log;
location /static/ {
alias /webapps/mycoolsite/site/static/;
}
location /media/ {
alias /webapps/mycoolsite/site/media/;
} …Run Code Online (Sandbox Code Playgroud) 我试图导入DebugKit和CakePHP产生以下错误: DebugKit.ToolbarComponent could not be found.
在它下面,它说:
在文件中创建下面的类ToolbarComponent:/Users/SomeUser/Sites/SomeProject/app/Plugin/DebugKit//Controller/Component/ToolbarComponent.php
如果您注意到,DebugKit和Controller之间由于某种原因有两个斜杠,这显然不是真正的目录.运行PHP 5.4.17的服务器.我已按照此处列出的确切安装说明进行操作.有什么建议?
我一直在制作2D游戏很长一段时间,但我想开始涉足3D.很难在互联网上找到答案或教程来为SceneKit创建自定义3D形状.
哪些编辑器支持相应的文件类型?你会建议一个特定的吗?
我正在尝试使用Boto将图像保存到S3。它确实保存了文件,但似乎没有正确保存它。如果我尝试在S3中打开文件,它只会显示一个损坏的图像图标。这是我正在使用的代码:
# Get and verify the file
file = request.FILES['file']
try:
img = Image.open(file)
except:
return api.error(400)
# Determine a filename
filename = file.name
# Upload to AWS and register
s3 = boto.connect_s3(aws_access_key_id=settings.AWS_KEY_ID,
aws_secret_access_key=settings.AWS_SECRET_ACCESS_KEY)
bucket = s3.get_bucket(settings.AWS_BUCKET)
f = bucket.new_key(filename)
f.set_contents_from_file(file)
Run Code Online (Sandbox Code Playgroud)
我也尝试过将最后一行替换为:
f.set_contents_from_string(file.read())
Run Code Online (Sandbox Code Playgroud)
但这也不起作用。有什么明显的我想念的地方吗?我知道django-storages有一个boto后端,但是由于此模型的复杂性,我不想将表单与django-storages一起使用。
这可能无法实现,但是当某些情况发生时,我想修改某些已登录用户的会话数据(标记为下次他们加载页面时需要运行一些额外的逻辑)。
有没有一种方法可以通过其ID访问用户的会话?
我有一个post_save挂钩,触发任务在芹菜中运行.该任务还会更新模型,从而导致post_save挂钩运行.问题是我不希望.delay()在这个实例中调用,我只是想同步运行它,因为它已经在一个worker中运行了.
是否有环境变量或其他我可以用来检测代码何时在芹菜中运行的东西?
澄清一下:我知道Celery任务仍然可以被称为普通函数,这正是我想要利用的.我想做这样的事情:
if os.environ['is_celery']:
my_task(1, 2, 3)
else:
my_task.delay(1, 2, 3)
Run Code Online (Sandbox Code Playgroud) 我有一个简单的文件Model,用于存储使用创建它的用户ForeignKey。该模型有一个对应的ModelSerializer和ModelViewSet。
问题在于,当用户提交POST创建新记录时,user应该由后端设置。我试图压倒一切perform_create的ModelViewSet设置用户,但它实际上在验证步骤仍然失败(这是有道理的)。回来说user必须填写该字段。
我正在考虑将user字段覆盖ModelSerializer为可选字段,但我觉得可能存在更清洁,更有效的方法。有任何想法吗?