diff --git a/CONTRIBUTORS b/CONTRIBUTORS new file mode 100644 index 0000000000000000000000000000000000000000..412f662381fd03b4382cce2f3c265da3ed53938f --- /dev/null +++ b/CONTRIBUTORS @@ -0,0 +1,34 @@ +Austin King <shout@ozten.com> +Ben Adida <ben@adida.net> +Brian J Brennan <brianloveswords@gmail.com> +Brian Warner <warner-github@lothar.com> +Bryan Clark <clarkbw@gmail.com> +Dan Callahan <dan.callahan@gmail.com> +Christian Kakesa <christian.kakesa@gmail.com> +David Burns <dburns@mozilla.com> +Francois Marier <francois@mozilla.com> +Gervase Markham <gerv@gerv.net> +Jakub Wieczorek <fawek@fawek.net> +Jared Hirsch <ohai@6a68.net> +Jed Parsons <jedp@me.com> +John Morrison <jrgmorrison@gmail.com> +Jonathan "Duke" Leto <jonathan@leto.net> +James Burke <jrburke@gmail.com> +Leah Klearman <lklrmn@gmail.com> +Lloyd Hilaiel <lloyd@hilaiel.com> +Matjaž Horvat <matjaz.horvat@gmail.com> +Michael Hanson <mhanson@gmail.com> +Milos Dinic <milos@mozilla.com> +Pete Fritchman <petef@databits.net> +Richard Soderberg <rsoderberg@gmail.com> +ringe <runar@rin.no> +s9e <s9e.dev@gmail.com> +salmonz <andrewgsalmons@gmail.com> +Sawyer Hollenshead <s.hollenshead@gmail.com> +Sean McArthur <sean.monstar@gmail.com> +Shane Tomlinson <stomlinson@mozilla.com> +Thomas Grainger <tagrain@gmail.com> +Tj Holowaychuk <tj@vision-media.ca> +Thomas Grainger <tagrain@gmail.com> +Zac Campbell <zcampbell@mozilla.com> +Zachary Carter <zack.carter@gmail.com> diff --git a/lib/static/views.js b/lib/static/views.js index cd498b0f4eb05f6411a9082b0af7d48df624f97c..2d0c43fb40aa3dc9b9916f95d6f4b601381ea8c5 100644 --- a/lib/static/views.js +++ b/lib/static/views.js @@ -32,7 +32,8 @@ const VIEW_PATH = path.join(__dirname, "..", "..", "resources", "views"); // with reasonable cache headers. This wrapper around rendering handles // cache headers maximally leveraging the same logic that connect uses // issue #910 -function renderCachableView(req, res, template, options) { + +function cacheAllTheThings(res) { if (config.get('env') !== 'local') { // allow caching, but require revalidation via ETag res.etagify(); @@ -43,6 +44,10 @@ function renderCachableView(req, res, template, options) { } res.setHeader('Date', new Date().toUTCString()); res.setHeader('Vary', 'Accept-Encoding,Accept-Language'); +} + +function renderCachableView(req, res, template, options) { + cacheAllTheThings(res); res.setHeader('Content-Type', 'text/html; charset=utf8'); options.enable_development_menu = config.get('enable_development_menu'); @@ -206,6 +211,12 @@ exports.setup = function(app) { renderCachableView(req, res, 'confirm.ejs', {title: _('Confirm Email')}); }); + var humans = fs.readFileSync(path.join(__dirname, "..", "..", "CONTRIBUTORS")).toString(); + app.get("/humans.txt", function(req, res) { + cacheAllTheThings(res); + res.send(humans); + }); + // serve up testing templates. but NOT in staging or production. see GH-1044