我有img标签,它们将参数作为网址的一部分。这些参数用于ajax图像裁剪。他们看起来像这样
/resize/45-800/
在网址前面添加/resize/files/
我能告诉ajax脚本从files目录中获取该文件,并将裁剪的版本转储到45-800/
我的问题是,有没有办法删除这些参数<img src="/resize/files/myImage.jpeg" alt="Chania">
,这些参数每次都可能不同,仅用于文件阅读,因此html将为此图像读取
<img src="/resize/45-800/files/myImage.jpeg" alt="Chania">
但世界将看到src仍然像这样
<img src="/resize/files/myImage.jpeg?params=45-800" alt="Chania">
使用htaccess可以吗?
我知道我可以使用查询字符串,只需使用ajax脚本从src读取就像这样
/resize
我只是希望有一个更漂亮的方式。我真的不想使用问号'?'。
/files
和var estaBuscando = false
let funcCoreData = FuncCoreData()
var resultados: NSFetchedResultsController<NSManagedObject> = NSFetchedResultsController()
var resultadosFiltrados: NSFetchedResultsController<NSManagedObject> = NSFetchedResultsController()
var objeto: NSFetchRequest<NSManagedObject> = NSFetchRequest()
var aFiltrados = [Cliente]()
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let respuesta = self.funcCoreData.obtenerResultados(entidad: "Clientes", orden: "nombre_comercial", ascendente: true)
self.objeto = respuesta[0] as! NSFetchRequest<NSManagedObject>
self.resultados = respuesta[1] as! NSFetchedResultsController<NSManagedObject>
do {
try self.resultados.performFetch()
self.pintarSecciones()
} catch {
print(" \(error)")
}
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath) as! CustomCell
if estaBuscando {
let obj2 = self.aFiltrados[indexPath.item]
cell.codigo.text = obj2.codigo
cell.titulo.text = obj2.nombre
cell.subtitulo.text = obj2.razonSocial
return cell;
} else {
if let obj = self.resultados.object(at: indexPath) as? Clientes {
cell.codigo.text = obj.codigo!
cell.titulo.text = obj.nombre_comercial!
cell.subtitulo.text = obj.razon_social!
}
}
return cell
}
func filtrarContenido(searchText: String) {
let buscar = searchText.lowercased()
let p1 = NSPredicate(format: "nombre_comercial contains[cd] %@", buscar)
let p2 = NSPredicate(format: "razon_social contains[cd] %@", buscar)
let predicate = NSCompoundPredicate(type: NSCompoundPredicate.LogicalType.or, subpredicates: [p1, p2])
let respuesta = self.funcCoreData.obtenerResultadosFiltrados(entidad: "Clientes", orden: "nombre_comercial", ascendente: true, predicate: predicate)
self.resultadosFiltrados = respuesta[1] as! NSFetchedResultsController<NSManagedObject>
do {
try self.resultadosFiltrados.performFetch()
self.aFiltrados = [Cliente]() // limpiar listado
// convertir cada resultado obtenido al modelo Cliente
for cli in self.resultadosFiltrados.fetchedObjects as! [Clientes] {
let cliente = Cliente()
cliente.convertir(cliente: cli)
self.aFiltrados.append(cliente)
}
} catch {
print(" Filtrar clientes \(error)")
}
}
func searchDisplayController(_ controller: UISearchDisplayController, shouldReloadTableForSearch searchString: String?) -> Bool {
self.filtrarContenido(searchText: searchString!)
return true
}
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
if(searchText.isEmpty) {
estaBuscando = false
} else {
estaBuscando = true
}
self.filtrarContenido(searchText: searchText)
self.tableView.reloadData()
}
每次都会在那里。
有人知道某种方式吗?
答案 0 :(得分:0)
我只是顿悟...我可以将裁剪宽度和高度参数放在数据属性而不是网址中......所以这个
<img src="/resize/files/myImage.jpeg" data-wh="45-800" alt="Chania">
而不是这个
<img src="/resize/45-800/files/myImage.jpeg" alt="Chania">
然后我可以从resize/files/
目录为所有将resize参数传递到url的图像提供服务;而且我不必使用丑陋的查询字符串。
"/resize/45-800/files/myImage.jpeg?ugly=45-800"
答案 1 :(得分:0)
所以我没有对此进行测试,但我认为我找到了原始问题的合法答案。我知道这可能是因为我工作的最后一份工作的人用来调整基于src url params的图像。这是链接 - http://sneak.co.nz/projects/img-resizing/
我的插件已经完成并且现在正在工作8 /这个方法看起来更好一些,它们会引导您完成整个图像调整大小过程,并使用图像缓存。
希望如果有效的话,这会对我有所帮助!如果我最终测试它并且效果很好,我会发表评论。