honojs / node-server

Node.js Server for Hono
https://hono.dev
352 stars 44 forks source link

Work on serve-static properly #81

Open renhiyama opened 1 year ago

renhiyama commented 1 year ago

just keep it normal, like dont serve index.html unless explicitly set to...

app.use('/__reejs/**', serveStatic({ root: './.reejs/', rewriteRequestPath:(p)=>p.replace('__reejs','') }));
app.use('/', serveStatic({ file: "./.reejs/serve/index.html" }));
app.use('/**', serveStatic({ root: './public/' }));

as of @hono/node-server@1.1.1, this code still doesnt work properly ...

This above code doesnt seve files inside .reejs folder properly, serves index.html when didnt ask to, and neither file option seems to work for me.

While it sounds reasonable to have served index.html automatically, I would suggest making that opt-in. Like:

app.use('/', serveStatic({ staticWebsite: true });

would just do the job.

renhiyama commented 1 year ago

On top of that, it would be cool if I could intercept and modify file contents, which will only serve the modified file, and not apply changes to the real file. Something like modifyFileContent would sound cool!

ryands17 commented 10 months ago

@renhiyama I'm facing the same issue. Is there any workaround? I tried serving static files from the public folder but that didn't work:

app.use('/static/**', serveStatic({ root: './public/' }));
renhiyama commented 10 months ago

@ryands17 I use hono w/ reejs + packit. Since packit is a code generator, I have configured it to read dir, get appropriate content type header and save the data as a json array to the final code. Then packit is configured to write a for loop on that array which registers route per file separately. This is just a small & easy workaround.