{"record":{"id":"ac225126f254b5c0","repo":"balderdashy/sails","slug":"see-http-sailsjs-com-docs-concepts-routes-url-sl","errorCode":null,"errorMessage":"See http://sailsjs.com/docs/concepts/routes/url-slugs for more info.","messagePattern":"See http://sailsjs\\.com/docs/concepts/routes/url-slugs for more info\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"info","filePath":"lib/router/index.js","lineNumber":378,"sourceCode":"  // Updated the sorted route address cache\n  sortedRouteAddresses = sortRouteAddresses(_.keys(this.explicitRoutes));\n\n  // Iterate over each address and bind the route that the address is for.\n  _.each(sortedRouteAddresses, function(address) {\n    var target = self.explicitRoutes[address];\n    var verb = detectVerb(address).verb;\n\n    // If the route address ends in a pattern var (e.g. /:id) or a wildcard (i.e. /*)\n    // and it declares a method that could be used to request an asset, and the route\n    // doesn't explicitly declare `skipAssets` true or false, then it should!\n    var shouldDeclareSkipAssets = (\n      _.isUndefined(target.skipAssets) &&\n      (address.match(/\\/\\*\\/?$/) || address.match(/^r\\|/)) &&\n      (!verb || _.contains(['all', 'get', 'head', 'options'], verb))\n    );\n    if (shouldDeclareSkipAssets) {\n      sails.log.warn('Warning: route `' + address + '` should explicitly declare `skipAssets: true` or `skipAssets: false` to ensure correct handling of assets!');\n      sails.log.warn('See http://sailsjs.com/docs/concepts/routes/url-slugs for more info.');\n      console.log();\n    }\n\n    self.bind(address, target);\n  });\n\n  // Fired after static routes are bound\n  sails.emit('router:after');\n};\n\n\n/**\n * Given a route target configuration, return an action identity for that target.\n * @param  {Dictionary|String} target The route target to get an action identity for\n * @return {String}        An action identity like `user/find`\n */\nRouter.prototype.getActionIdentityForTarget = function getActionIdentityForTarget(target) {\n","sourceCodeStart":360,"sourceCodeEnd":396,"githubUrl":"https://github.com/balderdashy/sails/blob/7b76422cc27823df033572bdda5c4910a68b697f/lib/router/index.js#L360-L396","documentation":"This is the second line of the same warning as error 127: after the skipAssets warning, Sails logs a pointer to the URL-slugs documentation and prints a blank line. It never appears alone; it always accompanies the skipAssets warning for the same route address.","triggerScenarios":"Same as error 127: binding a wildcard/get-style route whose target lacks an explicit `skipAssets` value.","commonSituations":"Seen in lift output for every wildcard route in routes.js missing skipAssets; harmless but noisy when many such routes exist.","solutions":["Fix the route as described for the preceding warning (declare skipAssets explicitly) and this log line disappears with it","Ignore it if intentionally leaving skipAssets unset"],"exampleFix":"// before\n'/*': { controller: 'PageController', action: 'home' }\n// after\n'/*': { controller: 'PageController', action: 'home', skipAssets: true }\n// (removing the warning also removes this documentation line)","handlingStrategy":"validation","validationCode":"// Same guard as error 127; fixing skipAssets removes this doc line too\nif (/\\*\\/?$/.test(address) && target.skipAssets === undefined) {\n  target.skipAssets = true;\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Treat the doc line as a companion to the skipAssets warning — fix the route, not the log","Keep route definitions explicit about asset handling","Run sails lift in CI and fail on new route warnings"],"tags":["routing","assets","logging","sails"],"backgroundTag":"ambiguous-catch-all-route","analyzedSha":"7b76422cc27823df033572bdda5c4910a68b697f","analyzedAt":"2026-09-01T04:01:57.104Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}