J'ai téléchargé un modèle vue.js sur le Web. Chaque fois que je construis des fichiers via npm, le titre de l'index.html continue d'être échangé avec le nom du modèle. Existe-t-il un moyen de modifier le titre par défaut?
3 Réponses :
Si je comprends bien votre question - vous devez configurer votre fichier vue.config.js
quelque chose comme ceci (faites attention à la partie Webpack
) - ces fichiers proviennent d'un projet en cours de fonctionnement, vous avez donc une compréhension maximale de son apparence à la fin :
<title><%= htmlWebpackPlugin.options.title %></title>
Et après avoir mis à jour votre vue.config.js code>, modifiez votre fichier de modèle
index.html
pour qu'il ressemble à ceci:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title><%= htmlWebpackPlugin.options.title %></title> <link href='https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900' rel="stylesheet"> <link href="https://fonts.googleapis.com/css?family=Material+Icons" rel="stylesheet"> <script type="text/javascript" src="../js/go.js"></script> <script type="text/javascript" src="../js/momentjs.js"></script> <script type="text/javascript" src="../js/webphone/flashphoner.js"></script> <script type="text/javascript" src="../js/webphone/SoundControl.js"></script> </head> <body> <div id="app"></div> </body> </html>
Faites attention à ce qui est inclus dans
-tag:
module.exports = { baseUrl: '/', outputDir: (process.env.NODE_ENV === 'production' ? '../web/' : '../web/js/'), indexPath: '../app/Resources/views/index.html.twig', // Setting this to false can speed up production builds if you don't need source maps for production. productionSourceMap: false, // By default, generated static assets contains hashes in their filenames for better caching control. // However, this requires the index HTML to be auto-generated by Vue CLI. If you cannot make use of the index HTML // generated by Vue CLI, you can disable filename hashing by setting this option to false, filenameHashing: false, lintOnSave: false, // https://cli.vuejs.org/ru/config/#devserver-proxy devServer: {}, // https://cli.vuejs.org/ru/config/#chainwebpack chainWebpack: config => { config .plugin('html') .tap(args => { args[0].title = 'Ojok Deep Sales Platform'; args[0].template = './index.html.template'; return args; }) } };
Après avoir généré un nouveau fichier index.html
, votre titre doit être défini sur ce que vous avez écrit dans args [0] .title option.
J'espère que cela vous aidera.
Merci pour votre réponse. Je n'ai pas de fichier vue.config.js. J'ai .eslintrc.js sans référence au titre. Le temlplate que j'utilise est ici: github.com/creativetimofficial/vue-material-dashboard
@ user3402600, vous pouvez en créer un vue.config.js
, docs: cli.vuejs.org/config/#global-cli-config
Je suis encore nouveau chez VueJS, mais voici mes découvertes. J'adorerais toutes les options ou améliorations suggérées. J'ai opté pour l'option n ° 2.
Option 1: définie pour le mode Pages multiples vue.config.js
<script> export default { title () { return `Foo Page â ${this.someValue}` }, data () { return { someValue: 'bar' } } } </script>
Option 2: titleMixin (référencé depuis https://medium.com/@Taha_Shashtari/the-easy-way-to-change-page-title-in-vue-6caf05006863 )
titleMixin.js ajouté au dossier mixins
<script> export default { title: 'Foo Page' } </script>
ajouté à main.js
import titleMixin from './mixins/titleMixin' Vue.mixin(titleMixin)
Utilisation dans les pages de composants
function getTitle (vm) { const { title } = vm.$options if (title) { return typeof title === 'function' ? title.call(vm) : title } } export default { created () { const title = getTitle(this) if (title) { document.title = title } } }
Utilisation dans Vue instance avec une fonction
module.exports = { pages: { index: { entry: 'src/main.js', // template title tag needs to be <title><%= htmlWebpackPlugin.options.title %></title> title: 'My Website Title', }, } }
Modifiez votre /public/index.html
et remplacez ceci:
<title><%= htmlWebpackPlugin.options.title %></title>
par ceci:
module.exports = { chainWebpack: config => { config.plugin('html').tap(args => { args[0].title = 'Your Title Here'; return args; }); } }
vue.config.js
<title>Your Title Here</title>
/public/index.html
<title><%= htmlWebpackPlugin.options.title %></title>
Pouvez-vous fournir plus de détails sur votre modèle vue.js? Il semble que cela pourrait être un problème vue-router / vue-metat. À quoi ressemble la partie
La partie titre est le nom du modèle. Modèle que j'utilise, j'ai appelé le thème du virus par le créateur Tim.
document.title
? Ou vous voulez dire changer le titre lorsque l'index.html est généré?@ user3402600 veuillez ajouter du code afin que je puisse vous aider à résoudre le problème. Sans code, il sera très difficile de diagnostiquer et de résoudre votre problème.
Je ne sais pas ce que je recherche. J'ai essayé de rechercher le titre qui apparaît dans la balise
@AndrewShmig le titre lorsque index.html est généré