我正在使用Vue.js开发一个无头WordPress站点,我有一个名为vue-wordpress的自定义主题。该主题使用Vue CLI进行scafolded。下面是目录结构-
我希望当我的网站加载它指向的文件是dist/templates/index.html而不是templates/index.html有人知道怎么做到吗?谢谢大家。
new9mtju1#
如果你想改变包含文件的路径,在你的functions.php中搜索templates/index.html,然后用dist/templates/index.html替换它。然而,简单地包含vue模板附带的html文件会导致各种问题,可能不是你真正想做的。如果你想使用Vue作为一个无头WordPress示例的SPA前端,我建议你看看bshiluk/vue-wordpress主题,它有很多现成的功能。如果你想手工完成,我建议你阅读tutorial。
functions.php
templates/index.html
dist/templates/index.html
t9aqgxwy2#
@superEwald感谢您分享您对这个问题的看法.我检查了这两篇文章,我认为他们是优秀的资源.我刚刚通过在我的functions.php中添加以下代码修复了这个问题-
<?php /** * Portfolio functions and definitions * * @link https://developer.wordpress.org/themes/basics/theme-functions/ * * @package WordPress * @subpackage Portfolio * @since Portfolio 1.0 */ // Remove all default WP template redirects/lookups remove_action( 'template_redirect', 'redirect_canonical' ); // Redirect all requests to index.html so the Vue app is loaded and 404s aren't thrown function remove_redirects() { add_rewrite_rule( '^/(.+)/?', 'index.html', 'top' ); } add_action( 'init', 'remove_redirects' ); // Load scripts function load_vue_scripts() { $theme_version = wp_get_theme()->get( 'Version' ); $version_string = is_string( $theme_version ) ? $theme_version : false; wp_enqueue_script( 'vuejs', get_template_directory_uri() . '/src/main.js', array(), $version_string ); wp_enqueue_style( 'vuejs-css', get_template_directory_uri() . '/src/assets/main.css', $version_string ); } add_action( 'wp_enqueue_scripts', 'load_vue_scripts'); function add_type_attribute($tag, $handle, $src) { // change the script tag by adding type="module" and return it. if ( 'vuejs' === $handle ) { $tag = '<script type="module" src="' . esc_url( $src ) . '"></script>'; return $tag; } } add_filter('script_loader_tag', 'add_type_attribute' , 10, 3);
我不知道这是否是正确的修复,但我会继续我构建的SPA应用程序。我也希望你对这段代码有什么想法。
2条答案
按热度按时间new9mtju1#
如果你想改变包含文件的路径,在你的
functions.php
中搜索templates/index.html
,然后用dist/templates/index.html
替换它。然而,简单地包含vue模板附带的html文件会导致各种问题,可能不是你真正想做的。如果你想使用Vue作为一个无头WordPress示例的SPA前端,我建议你看看bshiluk/vue-wordpress主题,它有很多现成的功能。如果你想手工完成,我建议你阅读tutorial。
t9aqgxwy2#
@superEwald感谢您分享您对这个问题的看法.我检查了这两篇文章,我认为他们是优秀的资源.我刚刚通过在我的functions.php中添加以下代码修复了这个问题-
我不知道这是否是正确的修复,但我会继续我构建的SPA应用程序。我也希望你对这段代码有什么想法。