Articles of 静态文件

Node / Express服务映像是否存在; caching问题

一直在使用SO,但这是我的第一个问题,因为我找不到解决这个问题的方法。 我会尝试尽可能的明确,有什么不清楚的,只是让我知道,所以我更新相应的问题。 我正在使用路由来根据在路由中传递的userId作为参数()来提供用户的照片。 它可以工作,但每次遇到标签时,都会从服务器请求图像,并且从不使用caching版本。 我用Cache-Control玩了一下,但是不pipe是全部还是全无:如果启用了caching并且用户改变了他的照片,它仍然会使用旧的照片。 我的问题是:是否有可能使用caching的版本,如果照片没有改变,但如果它确实使用从服务器? 我尝试使用“必须重新validation”以及“最大年龄”或“无caching”无济于事。 如果有帮助,以下是路线代码: Module.exports.getPhoto = function(req, res) { var mime = require('mime-magic'), memberId = req.params.memberId, imgUrl; path.exists('public/images/memberPhotos/' + memberId, function(exists) { if(exists) { imgUrl = 'public/images/memberPhotos/' + memberId; }else{ imgUrl = 'public/images/memberPhotos/noPhoto.jpg'; } fs.readFile(imgUrl, function(err, img) { mime.fileWrapper(imgUrl, function(err, mimeType) { if(!err) { console.log(mimeType); res.writeHead(200, { 'Content-Type': mimeType, 'Cache-Control': "max-age=" […]

路线在错误的地方查找静态文件

出于某种原因,我有一个特定的path/admins/:id ,它在/public/admins/中查找静态文件,而不是/public/ 。 这会导致404错误,js和css文件不会加载到此页面。 所有其他path在/public/查找静态文件。 自从我开始编写应用程序之后,我从来没有更改过提供静态文件的中间件,因此我不知道错误代码的位置。 例如,当它正在查找/stylesheets/bootstrap.min.css时,它正在查找/admins/stylesheets/bootstrap.min.css 。 app.js var express = require('express'); var stormpath = require('express-stormpath'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); // include routes var mainPage = require('./routes/mainPage'); var admins = require('./routes/admin'); var addAdmin = require('./routes/addAdmin'); var addDev = […]

使用节点快递服务静态文件时,正确的脚本path是什么?

我总是遇到问题find正确的path的脚本,它必须是因为我的方式服务静态文件,因为我的path是正确的。 在我的代码中,我试图包含物化框架,但没有find,我不明白为什么。 我在/浏览器中提供我的文件 app.use(express.static(path.join(__dirname, '../browser'))); 从浏览器/ index.html我使用(我相信)正确的道路,但它不工作。 任何帮助将是真棒,所以我不会一直犯同样的错误! 非常感谢你! 航class/服务器/ app.js var express = require('express'); var path = require('path'); var morgan = require('morgan'); var bodyParser = require('body-parser'); var app = express(); module.exports = app; app.use(morgan('dev')); app.use(express.static(path.join(__dirname, '../browser'))); app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); var PORT = process.env.PORT || 1337; app.listen(PORT, function() { console.log('Server is listening on […]

Node.js静态文件服务器逻辑(使用Connect中间件)

假设我有以下文件系统结构: /app/ Main application folder /app.js Server JS file ran by node.js /public Folder containing files for public website (port 80) /index.html /js/ /game.js /admin/ Folder containing files used by local network system (port X) /index.html /js/ /screen.js /share/ Folder containing files to be used by public website OR lan /js/ /jquery.js 最终的结果是, admin/index.html看起来像: <script […]

快递:是否有可能简化res.sendFile中的path?

这是我的目录结构: /用户/蒂蒂/ myproject的/应用/服务器/ …. app.js …./上市 …….. / CSS …….. / JS ……../视图 …………的index.html ………… about.html 和我的app.js文件: var express = require('express'); var app = express(); app.use(express.static('public')); app.get('/', function (req, res) { res.sendFile('/Users/Titi/myproject/app/server/public/view/index.html'); }); app.get('/about', function (req, res) { res.sendFile('/Users/Titi/myproject/app/server/public/view/about.html'); }); app.listen(2000, function () { console.log('Example app listening on port 2000!'); }); 它完美的作品。 但是我想知道是否有办法不必编写整个path(/Users/Titi/myproject/app/server/public/view/about.html)。 可以简化吗?

Windows上的Node.js + Express.js:最多等待两分钟的静态文件?

我在使用Node.Js / Express.js的Windows环境中遇到了一个问题,静态的JS文件可以在浏览器(禁用caching)中标记为“待处理”长达两分钟,之后它们似乎可以正常下载。 这通常发生在几次刷新之后。 没有显示任何错误,所以我不知道如何进一步调查。 相同的代码在Mac OSX环境下运行良好。 节点版本是v0.10.31,Express是4.8.5。 静态文件的代码是: app.use(express.static(path.join(__dirname, 'public'))); Chrome DevTools显示:

在示例express-jade项目中获取样式表和js的404

我使用默认的快速库在nodejs中创build了一个简单的静态页面。 但是,当我运行它时,nodejs无法拾取公共文件并在其上引发404。 我相信我所提供的道路是正确的。 这让我发疯。 我知道这个问题必须如此小而简单,以至于不值一提,但我无法find它。 你能帮我在这里吗? 代码在Rishavs / ComingSoonPage的 github上 感谢您的时间和帮助。 〜Rishav

在heroku中没有express.static的子目录

我看到一些非常奇怪的行为,其中一些文件正确地由我的express / node服务器(使用express.static() )返回,而不是子目录中的文件。 令人沮丧的是,它在本地使用节点或工头工作正常,它不会在heroku上工作。 这个要点在这里有主要的文件,我的应用程序结构如下所示: -app – index.html – img/ – base.png – sub/ – sub.png – scripts – base.js – sub/ – sub.js – css – base.css – sub/ – sub.css – server – app.js index.html和base。*文件都加载正常,它只是404.的sub。*文件似乎奇怪express.static会去1级深,但不是2 我已经尝试了一些不同的configuration,包括这个stackoverflow答案 。 我必须错过简单的东西。 谢谢您的帮助。 更新: 当我console.log下面的服务器上启动heroku,我得到: path.join(__dirname, '../app') /app path.join(__dirname, '../app') = /app path.join(__dirname, '/../app') /app/app path.join(__dirname, […]

节点静态vs express.static

我正在尝试在Node.js中设置静态文件服务器/caching。 我使用Express.js。 Express带有一个内置的静态服务器,Express绝对是最常用的框架之一,所以人们会期望静态中间件是超级可靠的。 不过,我环顾了一下互联网,发现包括Nodejitsu在内的大量人推荐了node-static npm模块。 我试图做两者之间的比较研究,但没有发现太多。 有没有什么区别? 我想使用Express.static,因为我已经使用Express,但是想做出正确的select。 这不是一个意见战争的post,我只是从那些知道他们正在谈论的东西,而不是“最爱”的特征进行比较 。

`express.static()`保持路由我的文件

在处理快速项目时,我正在尝试使用express.Router对象来处理我的应用程序路由。 在我的主要应用程序文件中,我为所有静态文件(css,javascript,html)添加了一个静态路由。 app.js var express = require('express'); var io = require('socket.io')(app); var bodyParser = require('body-parser'); var router = require('./include/router'); var app = express(); app.use('/', router); app.use(express.static(__dirname + '/public')); app.use(bodyParser.json()); io.on('connection', function(socket) { }); app.listen(3000); router.js var express = require('express'); var path = require('path'); var router = express.Router(); router.get('/', function(req, res) { res.sendFile('/html/index.html'); }); module.exports = […]