es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No se puede cargar un archivo js desde una subcarpeta diferente.

Esta es la estructura de la carpeta

App
|
├──main.js
├──package-lock.json
├──package.json
|
├──assets
| ├──css
| |
| ├──js
| ├──elem.js
| ├──toggletext.js
|
├──models
| ├──utils.js
|
├──pages
| ├──home.ejs

Cada vez que intento cargar el script utils.js

<link rel="stylesheet" href="/css/edit.css">
<script src="/js/toggletext.js"></script>

<p><script src="/js/elem.js"></script>
<script src="/models/utils.js"></script>
<code>
no se carga (simplemente dice: *Algo salió mal*) y obtengo este error:
</code>
Uncaught SyntaxError: Unexpected identifier

El resto de los archivos se cargan como se espera.

Estoy utilizando “ejs”: “^3.1.6”,
“ejs-mate”: “^3.0.0”,
“express”: “^4.17.1”,
“method-override”: “^3.0.0”,
“mongoose”: “^6.0.13”

Este es el archivo de servidor main.js:

const express = require('express');
const mongoose = require('mongoose');
const methodOverride = require("method-override");</p>

<p>const {Project} = require('./models/project')</p>

<p>const app = express();
const path = require('path');
const ejs = require('ejs-mate')</p>

<p>app.engine('ejs', ejs)
app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'pages'));</p>

<p>mongoose.connect('mongodb://localhost:27017/a',
    {
        useNewUrlParser: true
    });
const db = mongoose.connection;
db.on("error", console.error.bind(console, "connection error:"));
db.once("open", () =>
{
    console.log("Connected to db");
});</p>

<p>app.use(express.urlencoded({ extended: true }));
app.use(methodOverride('<em>method'));
app.use(express.static(path.join(</em>_dirname, 'assets')));

Cuando coloco el archivo utils.js en assets/js, carga perfectamente.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El problema parece ser con la ubicación del archivo utils.js. Al incluir el script utilizando , está tratando de cargar el archivo desde la raíz del servidor, pero en realidad el archivo se encuentra en la carpeta models.

    Para solucionar este problema, puede mover el archivo utils.js de la carpeta models a la carpeta assets/js, o puede cambiar el src en la etiqueta de script para que apunte a la ubicación correcta del archivo:

    debería cambiarse a

    asumiendo que la carpeta models se encuentra dentro de la carpeta assets.

Comments are closed.