Por que minha instrução EL está funcionando apenas em uma tag de script em que não importo um arquivo js. por meio de uma referência src?

Eu tenho um arquivo javascript, no qual coletei chamadas ajax de login e outro perfil de usuário que precisam estar disponíveis em todas as páginas do meu aplicativo da web.

Para todas as minhas chamadas ajax, preciso do caminho de contexto do aplicativo da web para obter o URL correto. Uma variável baseUrl pode ser definida porvar baseUrl = "${pageContext.request.contextPath}";.

Estou tendo um erro intrigante. Se eu tentar inicializar a variável baseUrl dentro do meulogin.js-arquivo, ele não funciona. É simplesmente definido como o valor da string"${pageContext.request.contextPath}" Este arquivo .js contém todos os scripts nos quais eu realmente preciso da variável. No entanto, se eu o definir dentro de uma tag de script sem fonte no próprio arquivo .jsp, ele funcionará como um encanto. (Código na parte inferior)

Suponho que isso tenha algo a ver com quando e em que escopo a expressão é compilada e / ou executada, e talvez também a diferença entre importações dinâmicas e estáticas de código. Eu simplesmente não consigo entender exatamente o que está acontecendo e por que minha abordagem desejada para definir a variável dentro dologin.js-file, não funciona.

Declaração de importação de trabalho:

<script>var baseUrl = "${pageContext.request.contextPath}";</script>
<script src="<c:url value="/js/login.js"/>" type="text/javascript"></script>

questionAnswers(1)

yourAnswerToTheQuestion