删除img src url中两个单词之间的所有内容,并使用htaccess从新src中提供文件

时间:2017-02-03 14:23:34

标签: php jquery html ajax .htaccess

我有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

我只是希望有一个更漂亮的方式。我真的不想使用问号'?'。

/filesvar 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() } 每次都会在那里。

有人知道某种方式吗?

2 个答案:

答案 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 /这个方法看起来更好一些,它们会引导您完成整个图像调整大小过程,并使用图像缓存。

希望如果有效的话,这会对我有所帮助!如果我最终测试它并且效果很好,我会发表评论。