#java #file-io #playframework
#java #file-io #playframework
Вопрос:
Приложение PlayFramework, footer.html файл:
%{
file = new File("footer.html");
path = file.getCanonicalPath();
lm = file.lastModified();
// date = new Date(lm);
}%
<span> Last update: ${lm} </span>
Здесь у меня правильный путь, поэтому footer.html существует.
Но lm равен 0, т.Е. Это 1970 год .. но сейчас 2011 год.
Вопрос: почему? Может ли это быть как-то связано с security-manager или чем-то, связанным с безопасностью?
Ответ №1:
Вы можете проверить ${file.exists()}
?
Я думаю, что происходит то, что ваш файл «footer.html » не существует, потому что play будет использовать скомпилированные представления (обычно в папке temp / bytecode / DEV), а в скомпилированных представлениях этот файл не существует
Даже если вы измените скомпилированное имя файла, оно не будет работать на сервере, поскольку датой изменения файла в сборке будет дата сборки.
Комментарии:
1. это существует, потому что у меня есть правильная переменная PATH при выполнении file.getCanonicalPath();
2. подождите, да, вы были правы: это false. но как возможно, что у меня есть правильный путь от этого?
3. Я пробовал
new File("app/views/Application/index.html");
, и он указал правильное время. Вероятно, вы что-то упускаете в своем canonicalPath.4. да, теперь он работает, но событие только с «новым файлом («footer.html «) «я возвращаю меня к этому пути: app/views/tags/footer.html