我在webroot外面有一个目录,用于存储从单独的管理系统上传的图像.图像以以下格式存储:
filepath/writable/images/00/00/23/65/filename-236581.jpg
Run Code Online (Sandbox Code Playgroud)
(webroot是filepath/html)
...例如.这里,236是数据库中图像的ID,文件系统被分成编号目录,以阻止在一个目录中使用100多个inode.
我希望能够从前端Web服务器访问这些,如下所示:
http://(server)/filename-236581.jpg
Run Code Online (Sandbox Code Playgroud)
其中filename是seo优化的字符串,与实际文件的名称相同.
我可以通过mod-rewrite来重写URL,使其包含额外编号的目录,并且我可以获得别名将请求重定向到writable/images目录,但我不能同时执行这两个操作.如果我同时放入alias和mod_rewrite指令,它会忽略别名,错误日志会抱怨它无法找到filepath/html/uploaded-images.
这是我到目前为止:
RewriteRule ^(.*)\/([^\/]*)-([0-9])\.(gif|jpg|jpeg|png)$ /uploaded-images/00/00/00/00/$2-$3.$4 [L,NC]
Run Code Online (Sandbox Code Playgroud)
...等等,一直到:
RewriteRule ^(.*)\/([^\/]*)-([0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9])\.(gif|jpg|jpeg|png)$ /uploaded-images/$3$4/$5$6/$7$8/$9$10/$2-$3$4$5$6$7$8$9$10$11$12.$13 [L,NC]
alias /uploaded-images "filepath/writable/images"
Run Code Online (Sandbox Code Playgroud)
删除[L]没有区别.
这是我的一个模型的简化版本:
class ImportRule(models.Model):
feed = models.ForeignKey(Feed)
name = models.CharField(max_length=255)
feed_provider_category = models.ForeignKey(FeedProviderCategory, null=True)
target_subcategories = models.ManyToManyField(Subcategory)
Run Code Online (Sandbox Code Playgroud)
此类管理用于将项目列表从订阅源导入数据库的规则.
尽管管理系统在模型中声明为可空,但管理员系统不会在不选择feed_provider_category的情况下添加ImportRule.数据库(SQLite目前)甚至检查出ok:
>>> .schema
...
CREATE TABLE "someapp_importrule" (
"id" integer NOT NULL PRIMARY KEY,
"feed_id" integer NOT NULL REFERENCES "someapp_feed" ("id"),
"name" varchar(255) NOT NULL,
"feed_provider_category_id" integer REFERENCES "someapp_feedprovidercategory" ("id"),
);
...
Run Code Online (Sandbox Code Playgroud)
我可以很容易地在python shell中创建对象:
f = Feed.objects.get(pk=1)
i = ImportRule(name='test', feed=f)
i.save()
Run Code Online (Sandbox Code Playgroud)
...当然,管理系统不会让我编辑它.如何让管理员让我编辑/创建对象而不指定该外键?
我正在编写一些JS代码来重新链接图像,然后调整它以适应包含的对象.简化版代码:
var image = (get image);
try {
image.itemLink.relink(File(new_filename));
}
catch(e) {
(log it);
}
var image = (find image again because after the relink it would otherwise cause error "Object no longer exists")
(work out new width, height, v offset, h offset);
try {
if(image.locked) {
lock_later = true;
image.locked = false;
}
}
catch(e) { }
// Resize and reposition image
image.geometricBounds = [(rectangle.geometricBounds[0] + h_offset) + "mm", (rectangle.geometricBounds[1] + w_offset) + "mm", (rectangle.geometricBounds[2] - h_offset) + "mm", …Run Code Online (Sandbox Code Playgroud) 我在Objective C中有一个NSMutableArray对象.我根据数据文件的内容填充它,其中包含每个元素应该包含的类和参数列表.所有可能的类都继承自公共父类.
有没有办法实例化数组的每个元素而不对大规模if-else测试中的每个可能的类进行硬编码?
alias ×1
apache ×1
django-admin ×1
foreign-keys ×1
javascript ×1
mod-rewrite ×1
nullable ×1
objective-c ×1