- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试上传图像并以 express 方式显示它。我将我的应用程序配置为在“公共(public)/图像”中上传
app.use(express.bodyParser({ keepExtensions: true, uploadDir: './public/images' }));
上传进展顺利,但我找不到如何在我的 Jade 模板中显示上传的图像。我从 req.files 对象获得的图像路径类似于“public/images/imagename.jpg”,但我可以看到图像的唯一方法是在这样的 url 中:
http://localhost:3000/images/imagename.jpg
有没有办法从 req.files 中删除“public”参数,或者还有其他解决方案吗?谢谢大家!
编辑:
好的,谢谢。但我的问题是关于在 Jade 模板中显示图像。我添加了这一行:
app.use('/public/images/', express.static(__dirname + '/public/images/'));
现在我可以访问该目录中的文件了。但我无法在我的 Jade 模板中显示它们。当我尝试这个时(使用 foto_path === req.files.image.path):
img(src= #{material.foto_path})
我得到这个网址:
http://localhost:3000/undefinedpublic/images/b1ce29f40ac7692ac62637e42f0f9128.jpgundefined
“未定义”有什么用?
谢谢!!
最佳答案
您需要知道 Express 配置您的公共(public)目录与 Apache 等其他传统服务器略有不同。我想为了显示静态资源,你的行看起来像这样:
app.use(express.static(__dirname + '/public'));
这将是您的应用中唯一可公开查看的文件夹。这就是为什么 Express 觉得在 url 中添加目录名称是多余的。 该网址并不反射(reflect)您的实际文件夹结构。
但是 req.files 确实显示了实际路径,以便您可以在应用程序中操作它,否则它在其他地方将无法使用。我的解决方案是直接引用 src = '/images/imageName.jpg'
于 Jade 。您必须将实际的图像名称作为参数传递。或者,您可以从 req 中删除“公共(public)”部分并传递它。
关于node.js - 在jade中快速上传图片并查看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12251302/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!