veliovgroup / flow-router

🚦 Carefully extended flow-router for Meteor
https://packosphere.com/ostrio/flow-router-extra
BSD 3-Clause "New" or "Revised" License
201 stars 30 forks source link

Not importing /public resource (DOM Syntax error) in <head> when use URL in param in case of missing '/' start character. #103

Closed kakadais closed 1 year ago

kakadais commented 1 year ago

In advance, I don't think this is a bug but could cause confusion for some people or make a mistake to waste a time. I'm sure we need to use a resource path as a '/pathName/...' for the '/public' resources. But the path 'pathName/...' also works in a normal URL(FlowRouter.route("/")) and occurs an error only with the Params in the URL situation(FlowRouter.route("/reproduce/:_data")). I believe it should be working in the same condition, both work or not.

Flow-Router is not importing /public resource in when use URL in param in case of missing '/' start character.

Working only for without Params
<link rel="stylesheet" href="assets/....
Working on both URL pattern
 <link rel="stylesheet" href="/assets/....

Reproduction git repo: git@github.com:kakadais/Flow-Router-Reproduce.git The error occurs in the URL with http://localhost:3000/reproduce/someData and to solve it, comment all head-error.html uncomment all head-solved.html

ostrio:flow-router-extra@3.9.0 but I think the olds are same including original flow-router package. METEOR@2.11.0 Chrome Version 110.0.5481.177 (Official Build) (arm64) Safari Version 16.3 (18614.4.6.1.6) MacOS 13.2.1 (22D68)

swiper-bundle.min.js:1 Uncaught SyntaxError: Unexpected token '<' (at swiper-bundle.min.js:1:1)
jquery.min.js:1 Uncaught SyntaxError: Unexpected token '<' (at jquery.min.js:1:1)
jquery.easing.min.js:1 Uncaught SyntaxError: Unexpected token '<' (at jquery.easing.min.js:1:1)
masterslider.min.js:1 Uncaught SyntaxError: Unexpected token '<' (at masterslider.min.js:1:1)
particles.js:1 Uncaught SyntaxError: Unexpected token '<' (at particles.js:1:1)
gsap.min.js:1 Uncaught SyntaxError: Unexpected token '<' (at gsap.min.js:1:1)
splitting.min.js:1 Uncaught SyntaxError: Unexpected token '<' (at splitting.min.js:1:1)
locomotive-scroll.min.js:1 Uncaught SyntaxError: Unexpected token '<' (at locomotive-scroll.min.js:1:1)
choices.min.js:1 Uncaught SyntaxError: Unexpected token '<' (at choices.min.js:1:1)
autosize.min.js:1 Uncaught SyntaxError: Unexpected token '<' (at autosize.min.js:1:1)
hot-module-replacement.js?hash=8bbefadb77097ac852d6d5dd3db9f23e39ee3511:342 HMR: connected
app.js?hash=a6b4228e22a7663b62e91fe8a543b942f01ffef1:225 ifjwiejfie
VM7214:3 Uncaught ReferenceError: Swiper is not defined
    at <anonymous>:3:22
    at DOMRange._insertNodeWithHooks (blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:346:12)
    at DOMRange._insert (blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:321:88)
    at DOMRange.attach (blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:382:16)
    at DOMRange._insert (blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:319:7)
    at DOMRange.attach (blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:382:16)
    at DOMRange._insert (blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:319:7)
    at DOMRange.attach (blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:382:16)
    at DOMRange._insert (blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:319:7)
    at DOMRange.attach (blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:382:16)
(anonymous) @ VM7214:3
DOMRange._insertNodeWithHooks @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:346
DOMRange._insert @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:321
DOMRange.attach @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:382
DOMRange._insert @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:319
DOMRange.attach @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:382
DOMRange._insert @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:319
DOMRange.attach @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:382
DOMRange._insert @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:319
DOMRange.attach @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:382
DOMRange._insert @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:319
DOMRange.attach @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:382
DOMRange._insert @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:319
DOMRange.attach @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:382
DOMRange._insert @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:319
DOMRange.attach @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:382
DOMRange._insert @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:319
DOMRange.attach @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:382
DOMRange._insert @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:319
DOMRange.attach @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:382
DOMRange._insert @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:319
DOMRange.attach @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:382
DOMRange._insert @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:319
DOMRange.attach @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:382
DOMRange._insert @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:319
DOMRange.attach @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:382
DOMRange._insert @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:319
DOMRange.attach @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:382
DOMRange._insert @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:319
DOMRange.attach @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:382
Blaze.render @ blaze.js?hash=c4cf85269cc056ebb26b1798966d310d36ace107:2046
_render @ kadira_blaze-layout.js?hash=0a93cedd03127a16d69f5b0da79d52593d9c4d4c:182
(anonymous) @ kadira_blaze-layout.js?hash=0a93cedd03127a16d69f5b0da79d52593d9c4d4c:81
EVp.withValue @ meteor.js?hash=3fe70c93a2fcd225dc5cc6572b8c3e39756a507b:1245
(anonymous) @ meteor.js?hash=3fe70c93a2fcd225dc5cc6572b8c3e39756a507b:625
(anonymous) @ meteor.js?hash=3fe70c93a2fcd225dc5cc6572b8c3e39756a507b:1291
onGlobalMessage @ meteor.js?hash=3fe70c93a2fcd225dc5cc6572b8c3e39756a507b:552
postMessage (async)
setImmediate @ meteor.js?hash=3fe70c93a2fcd225dc5cc6572b8c3e39756a507b:572
Meteor.defer @ meteor.js?hash=3fe70c93a2fcd225dc5cc6572b8c3e39756a507b:694
(anonymous) @ kadira_blaze-layout.js?hash=0a93cedd03127a16d69f5b0da79d52593d9c4d4c:79
Meteor.startup @ meteor.js?hash=3fe70c93a2fcd225dc5cc6572b8c3e39756a507b:1026
render @ kadira_blaze-layout.js?hash=0a93cedd03127a16d69f5b0da79d52593d9c4d4c:75
action @ app.js?hash=a6b4228e22a7663b62e91fe8a543b942f01ffef1:218
callAction @ ostrio_flow-router-extra.js?hash=d3d0578dad0847ae3be580a1e805452b1ba936c8:1301
(anonymous) @ ostrio_flow-router-extra.js?hash=d3d0578dad0847ae3be580a1e805452b1ba936c8:1910
Tracker.withComputation @ tracker.js?hash=1416fd47879241b1300a4665b10cd76adc1484ae:585
Tracker.nonreactive @ tracker.js?hash=1416fd47879241b1300a4665b10cd76adc1484ae:578
(anonymous) @ ostrio_flow-router-extra.js?hash=d3d0578dad0847ae3be580a1e805452b1ba936c8:1896
(anonymous) @ tracker.js?hash=1416fd47879241b1300a4665b10cd76adc1484ae:310
Tracker.withComputation @ tracker.js?hash=1416fd47879241b1300a4665b10cd76adc1484ae:585
_compute @ tracker.js?hash=1416fd47879241b1300a4665b10cd76adc1484ae:309
_recompute @ tracker.js?hash=1416fd47879241b1300a4665b10cd76adc1484ae:324
Tracker._runFlush @ tracker.js?hash=1416fd47879241b1300a4665b10cd76adc1484ae:481
Tracker.flush @ tracker.js?hash=1416fd47879241b1300a4665b10cd76adc1484ae:438
_invalidateTracker @ ostrio_flow-router-extra.js?hash=d3d0578dad0847ae3be580a1e805452b1ba936c8:1947
afterAllTriggersRan @ ostrio_flow-router-extra.js?hash=d3d0578dad0847ae3be580a1e805452b1ba936c8:1592
Triggers.runTriggers @ ostrio_flow-router-extra.js?hash=d3d0578dad0847ae3be580a1e805452b1ba936c8:2148
(anonymous) @ ostrio_flow-router-extra.js?hash=d3d0578dad0847ae3be580a1e805452b1ba936c8:1595
waitOn @ ostrio_flow-router-extra.js?hash=d3d0578dad0847ae3be580a1e805452b1ba936c8:1289
route._actionHandle @ ostrio_flow-router-extra.js?hash=d3d0578dad0847ae3be580a1e805452b1ba936c8:1594
(anonymous) @ ostrio_flow-router-extra.js?hash=d3d0578dad0847ae3be580a1e805452b1ba936c8:3202
nextEnter @ ostrio_flow-router-extra.js?hash=d3d0578dad0847ae3be580a1e805452b1ba936c8:3026
(anonymous) @ ostrio_flow-router-extra.js?hash=d3d0578dad0847ae3be580a1e805452b1ba936c8:3203
nextEnter @ ostrio_flow-router-extra.js?hash=d3d0578dad0847ae3be580a1e805452b1ba936c8:3026
page.dispatch @ ostrio_flow-router-extra.js?hash=d3d0578dad0847ae3be580a1e805452b1ba936c8:3032
page.replace @ ostrio_flow-router-extra.js?hash=d3d0578dad0847ae3be580a1e805452b1ba936c8:2997
self._page.<computed> @ ostrio_flow-router-extra.js?hash=d3d0578dad0847ae3be580a1e805452b1ba936c8:1850
page.start @ ostrio_flow-router-extra.js?hash=d3d0578dad0847ae3be580a1e805452b1ba936c8:2885
page @ ostrio_flow-router-extra.js?hash=d3d0578dad0847ae3be580a1e805452b1ba936c8:2790
initialize @ ostrio_flow-router-extra.js?hash=d3d0578dad0847ae3be580a1e805452b1ba936c8:1867
(anonymous) @ ostrio_flow-router-extra.js?hash=d3d0578dad0847ae3be580a1e805452b1ba936c8:133
maybeReady @ meteor.js?hash=3fe70c93a2fcd225dc5cc6572b8c3e39756a507b:975
loadingCompleted @ meteor.js?hash=3fe70c93a2fcd225dc5cc6572b8c3e39756a507b:987
dr-dimitru commented 1 year ago

@kakadais as you mentioned I too believe it's not a bug. Indeed URL started with leading / and without are by the fact different URLs. That can be easily solved with <base> tag