Вам не нужно, чтобы ваши .js
файлы были сохранены как .js
, если их тип содержимого text/javascript
. Но наличие динамической информации в ваших .js
файлах неверно:
- вы не можете их правильно кэшировать
- у вас может возникнуть желание добавить логику jsp в файл .js, что будет сложно поддерживать
- вы не можете использовать сети для доставки контентов (при необходимости)
- (и, возможно, в этом есть и другие недостатки, о которых я сейчас не могу думать)
Вместо этого вам следует инициализировать некоторый объект настроек со страницы jsp, использующей файл .js. См. этот ответ для получения более подробной информации.
Вот конкретный (упрощенный) пример из моего кода. Этот фрагмент находится в .jsp
:
<script type="text/javascript">
var config = {
root : "${root}",
language: "${user.language.code}",
currentUsername: "${user.username}",
messages : {
reply : "${msg.reply}",
delete : "${msg.delete}",
loading : "${msg.loading}",
}
};
init(config);
</script>
init(config)
находится в файле .js
и просто устанавливает объект конфигурации в качестве глобальной переменной. (У меня есть некоторые значения по умолчанию, но это не имеет значения)