javascript - 通过 javascript 处理默认配置文件图像的更好方法

标签 javascript image

var imgRoot='forum/attachments/users/';

<img 
 src="../employees/attachments/users/username_xyz.png" 
 onerror='this.src=imgRoot+"no_profile_pic.png" '
/>

我必须显示用户个人资料图片(未在 db 中设置),只需简单上传到预定义目录,用户名中的空格替换为下划线,例如用户名是“A B C”,我们期望图像 A_B_C.png .当用户没有图像时会出现问题,我们必须显示默认图像,如上所示,通过添加 onerror 事件来加载默认图像。

有没有更好的方法来处理这个问题?我们事先不知道用户是否上传了个人资料图片。另一个烦恼是,当 firebug 在加载回退默认配置文件图像之前没有找到用户配置文件图像时,它会报告网络错误。

最佳答案

当找不到文件时,我会让服务器响应一个 http 302 重定向到默认的配置文件图像 url。大多数网络服务器无需任何代码即可执行此操作,只需一个配置文件。

编辑:由于您使用的是 Apache,因此您需要执行以下操作:

  1. 确保安装了 mod_rewrite。
  2. 如果您要使用 .htaccess 文件,请确保为目标目录设置了 AllowOverride On
  3. 编辑您的 httpd.conf.htaccess 文件。

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^.*$ /anonymous.jpg [L,R=302]
    

Apache 配置有很多怪癖,因此您的配置可能必须略有不同。

关于javascript - 通过 javascript 处理默认配置文件图像的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18844796/

相关文章:

html - 隐藏的溢出使 img 下降并被剪裁

android - 按 photo_ID 显示联系人的照片

ios - 缩小图像复制到粘贴板后变得模糊 - Swift 3.0

Javascript/JQuery Datagrid 在数据表中显示/编辑/输入

java - 如何使用 for 语句在 java 数组中创建多个图像?

javascript - inherit.js 中的奇怪正则表达式(John Resig 着)——为什么、什么以及如何?

javascript - 在 wordpress 中使用点击事件打开/更改 Iframe

html - 如何在加载图像之前保持图像的固有大小,从而使布局稳定?

javascript - VB 2013 : Auto login from my. 设置问题

javascript - addEventListener() 无法多次工作。纯javascript