Skip to main content

gatsby-plugin-remove-trailing-slashes

This plugin removes trailing slashes from your project’s paths. For example, yoursite.com/about/ becomes yoursite.com/about.

Important considerations

This plugin is intended to remove trailing slashes from paths generated by Gatsby itself.

This however does not prevent the resolution of pages that have trailing slashes, due to the way browsers are built to interpret URLs as paths.

This means that a user will need to take the extra step of ensuring that all router links direct towards paths that do not end in a slash.

For example, <Link to="/about/"> will render the view related to /about but will display as /about/ in the browsers address bar.

This is an important factor when relying on path driven logic, such as in the use case of the Link components activeClassName and activeStyle props.

For example, if the current route is /about, the component <Link to="/about/" activeStyle={{ color: 'rebeccapurple' }}> wouldn’t match because of the slash.

Netlify Trailing Slashes

Netlify users should also take into account that that the service will match paths to redirect rules regardless of whether or not they contain a trailing slash, potentially causing infinite redirect loops and unexpected behaviours.

This can be negated through the use of their Pretty URL feature, which rewrites URLs to pretty URLs.

Please see the Netlify docs for more information: https://www.netlify.com/docs/redirects/#trailing-slash

Usage

Install:

npm install --save-dev gatsby-plugin-remove-trailing-slashes

Then configure via gatsby-config.js.

{
  ...
  plugins: [
    ...,
    `gatsby-plugin-remove-trailing-slashes`,
  ]
}

That’s it.


Was this helpful? edit this page on GitHub