Comments (6)
Here's what helped me: https://gist.github.com/ssafejava/8704372
from grunt-contrib-connect.
I would LOVE this!
from grunt-contrib-connect.
I think custom 404 handling should happen in your own middleware instead. Thanks for the suggestion though!
from grunt-contrib-connect.
@shama Say you wanted to handle all 404s by returning the index.html page (which is quite often the case in a single page app), how would I go about doing this? Do I have access to the fs
module?
I thought something like the below config might have worked, then I realised that it's only connect, not the full express framework.
livereload: {
options: {
open: true,
base: [
'.tmp',
'<%= yeoman.app %>'
],
middleware: function(connect, options) {
var middlewares = [];
var directory = options.directory || options.base[options.base.length - 1];
if (!Array.isArray(options.base)) {
options.base = [options.base];
}
options.base.forEach(function(base) {
// Serve static files.
middlewares.push(connect.static(base));
});
// Make directory browse-able.
middlewares.push(connect.directory(directory));
// Handle 404
middlewares.push(function(req, res, next) {
res.sendfile(options.base[1] + '/index.html');
});
return middlewares;
}
}
},
from grunt-contrib-connect.
@Siyfion You could build your own if you need something simple:
middleware: function(connect, options) {
return [function(req, res) {
var filename = '.' + req.url;
if (!grunt.file.exists(filename)) filename = './404.html';
res.end(grunt.file.read(filename));
}];
},
But by that point it would probably be easier to use one of the many file serving libraries intended for serving files in a more production like environment (express, st, estatic, etc) or something like https://npmjs.org/package/grunt-express
from grunt-contrib-connect.
I had the same issue myself, after couple of hours of research, here is the solution I've ended up with.
from grunt-contrib-connect.
Related Issues (20)
- ExperimentalWarning: The http2 module is an experimental API. HOT 6
- forwarding grunt connect to different url HOT 2
- DES3 is a weak cipher
- warning corifeus-builder-angular > grunt-contrib-connect > [email protected]: Use the built-in module in node 9.0.0 or newer, instead HOT 10
- Can I force TLS 1.2? HOT 2
- Can we use this with helmet? HOT 1
- Changing content type of files HOT 2
- Is it possible to configure the mime type returned by grunt-contrib-connect? HOT 1
- Options are just being ignored HOT 1
- This project's build is currently broken. HOT 1
- How to preview a Markdown file?
- Port parameter passed in as string leads to misleading error HOT 1
- Upgrade morgan package, CVE-2019-5413
- Cannot access Angular App hosted on CentOS 7 VM in Windows 10
- Security vulnerability GHSA-6fc8-4gx4-v693 affecting "ws" package (nested dependency) HOT 2
- opn dependency was renamed to `open` HOT 1
- `node-http2` is deprecated. Use node's built in `http2` HOT 6
- Fix vulnerability from websocket dependency: Denial of Service HOT 2
- IPv4 loopback overridden
- util.isArray API is deprecated after update node to version 22.0.0
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from grunt-contrib-connect.