Soy muy nuevo en node y heroku y sospecho que esto es algún tipo de permiso simple problema, etc., pero parece que no puedo rastrearlo.Heroku (Cedar) + Node + Express + Jade Los archivos javascript del lado cliente en el subdirectorio funcionan localmente con foreman + curl pero no cuando se los envía a Heroku
Tengo varios archivos javascript puros en un subdirectorio de un nivel debajo de mi directorio raíz donde está mi archivo web.js. Tengo una línea en mis web.js archivo para especificar el directorio
app.use('/heatcanvas',express.static(__dirname+'/heatcanvas'));
Si funciono mi aplicación a nivel local con Heroku capataz me da la respuesta esperada js cuando ejecute el siguiente comando curl
curl localhost:5000/heatcanvas/heatcanvas.js
Sin embargo cuando empujo a Heroku y golpear la url vivo cor- respondiente en el navegador
www.example.com/heatcanvas/heatcanvas.js
recibo el siguiente:
Cannot GET /heatcanvas/heatcanvas.js
Si reviso Firebug y/o los registros de Heroku veo que en realidad estoy obteniendo errores 404 para esos archivos aunque la ruta debe coincidir con lo que se está haciendo localmente. También vale la pena mencionar que el javascript de terceros viene muy bien, solo cuando el atributo src de la etiqueta del script apunta a mi sitio que hay un problema. ¿Qué debo hacer para que mis scripts estén disponibles?
Nunca he investigado los detalles, pero sé que en Rails on Heroku, usted coloca/compila sus activos estáticos en la raíz/pública. Por ejemplo, Rails compila '/ assets/base.sass' con'/public/stylesheets/base.css'. Así que creo que Heroku expone el directorio 'public' como un directorio accesible estático. Por lo general, no puede acceder a archivos arbitrarios en servidores de producción, como es posible que esté acostumbrado en las aplicaciones PHP convencionales. Tendría que especificar una ruta GET que realmente sirva ese archivo heatcanvas.js, pero no le gustaría hacer eso. Estoy realmente oxidado, pero quizás trato de utilizar el directorio 'public'. – danneu
En la [Pila de cedro] (https://devcenter.heroku.com/articles/cedar) las solicitudes se envían al banco de pruebas sin perturbaciones. Por lo tanto, depende de la aplicación/marco servir activos estáticos. El único especial sobre el directorio 'public' es que la aplicación/framework Rails sirve activos desde allí. Las aplicaciones de Node.js tendrán una estructura diferente. –
¿Puede incluir la salida de 'heroku logs -t' durante una de estas solicitudes? –