Заставьте браузер использовать последний файл JS и CSS при загрузке страницы с помощью php, JS

Я разработал несколько веб-сайтов, используя собственный PHP и YII2. Всякий раз, когда я изменяю какой-либо файл JS или CSS, это никак не влияет на мои веб-страницы. Чтобы применить новейшую версию моего кода, мне нужно нажать ctrl+f5, чтобы обновить ее.

Я уже прошел несколько ответов, но безрезультатно. Я проверил приведенные ниже ссылки: Заставить браузер обновить css, javascript и т. д.
Как заставить клиентов обновлять файлы JavaScript ?

Пожалуйста, помогите мне решить эту проблему.


person Suparna Dey    schedule 14.07.2018    source источник
comment
этот вопрос больше касается Yii2 asset manager, а не дубликатов, упомянутых выше, которые полностью зависят от настроек браузера @RiggsFolly   -  person Muhammad Omer Aslam    schedule 14.07.2018
comment
@MuhammadOmerAslam Хорошо, я снова открыл вопрос. Все ваше, чтобы дать ответ   -  person RiggsFolly    schedule 14.07.2018
comment
@MuhammadOmerAslam Хотя в этом случае это может быть очевидный дубликат Кроме того, со многими другими вещами, которые появляются в Google   -  person RiggsFolly    schedule 14.07.2018
comment
да, возможно, его проблема решена опцией forcecopy или appendTimestamp, но для этого ему нужно добавить больше кода, @SuparnaDey, пожалуйста, добавьте файл Assetmanager, который вы используете для загрузки ресурсов, также добавьте файл config для вашего приложения, это может быть config/web.php, если базовое приложение или config/main.php, если расширенное приложение   -  person Muhammad Omer Aslam    schedule 14.07.2018


Ответы (1)


Этого можно добиться, установив AssetManager::$appendTimestamp до true. В вашей веб-конфигурации:

'assetManager' => [
    'appendTimestamp' => true,
]

Добавлять ли отметку времени к URL-адресу каждого опубликованного ресурса. Когда это так, URL-адрес опубликованного ресурса может выглядеть как /path/to/asset?v=timestamp, где timestamp — время последнего изменения файла опубликованного ресурса. Обычно вы хотите установить для этого свойства значение true, если вы включили кэширование HTTP для ресурсов, потому что это позволяет отключить кэширование при обновлении ресурсов.

person rob006    schedule 14.07.2018
comment
:D я собирался написать это, но дело в том, что если assetManager использует $sourcePath средства вне сети, то он должен использовать forceCopy - person Muhammad Omer Aslam; 14.07.2018
comment
Если Ctrl + F5 решает проблему, то проблема только в кеше браузера. appendTimestamp должен решить эту проблему. - person rob006; 14.07.2018