Я делаю плагин WordPress, который на самом деле является приложением Angular 6 javascript.У меня есть следующие коды, чтобы он работал как короткий код в WordPress
function msp_helloworld_load(){
ob_start();
wp_enqueue_script( 'my_custom_script', plugin_dir_url( __FILE__ ) . 'app/runtime.js' );
wp_enqueue_script( 'my_custom_script1', plugin_dir_url( __FILE__ ) . 'app/polyfills.js' );
wp_enqueue_script( 'my_custom_script2', plugin_dir_url( __FILE__ ) . 'app/styles.js' );
wp_enqueue_script( 'my_custom_script3', plugin_dir_url( __FILE__ ) . 'app/vendor.js' );
wp_enqueue_script( 'my_custom_script4', plugin_dir_url( __FILE__ ) . 'app/main.js' );
echo '<base href="' . $_SERVER[ 'REQUEST_URI' ] . '">';
echo '<app-root></app-root>';
echo ob_get_clean();
}
add_shortcode( 'helloworld', 'msp_helloworld_load' );
В этом приложении я использую простой маршрутизатор Angular 6, как этот
const appRoutes: Routes = [
{ path: '', component: HomeComponent },
{ path: 'contact', component: ContactComponent }
];
Я встраиваю этот короткий кодв примере страницы WordPress как
[helloworld]
, что хорошо рендеринга и маршрутизатор работает, пока я нажимаю на него.Два URL выглядят так:
http://localhost/wp/sample-page
http://localhost/wp/sample-page/contact
Проблема возникает при перезагрузке страницы.Он ничего не находит.
Мой .htaccess выглядит следующим образом
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /hn/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /hn/index.php [N]
RewriteRule ^ /sample-page/$1 [L]
</IfModule>
# END WordPress
Но все равно он не работает.Я не очень хорошо разбираюсь в .htaccess, поэтому, пожалуйста, помогите.