我正在创建一些使用 JavaScript 而没有捆绑的实验性网站。对于依赖管理,我一直使用 RequireJS,但最近我开始使用 SystemJS,因为它对 HTTP2 有一些非常好的支持。到目前为止,我已经在我的自定义 Web 服务器上做了一些实验,结果对于我创建的网站来说非常棒。例如,第一页渲染发生在 400 毫秒左右,整页加载发生在 800 毫秒等。
我这样做是因为我想充分利用 HTTP2 并且我只想延迟加载我在某个时刻使用的脚本。像这样的代码更容易维护,缓存更好等等。目前对像 Webpack 这样的打包器非常狂热,但这不是我想要使用的东西。
这里的问题是:有没有办法使用 Gulp 编译单个 Vue 文件/组件,然后使用 SystemJS 作为 AMD 或 CommonJS 模块加载它们?
编辑:
这就是我想用 SystemJS 和 Vue 实现的目标:
入口点JS文件:
// SystemJS config
SystemJS.config({
/* ... */
baseURL: './',
map: {
// App
'app': 'scripts/app.min.js',
// Utils
'axios': 'scripts/vendor/axios/axios.min.js',
'modernizr': 'scripts/vendor/modernizr/modernizr.min.js',
// Framework
'vue': 'scripts/vendor/vue/vue.min.js',
// Components
'vueHelloWorld': 'scripts/components/hello/vueHelloWorld.js', // <- Compiled VUE component
'vueMenu': 'scripts/components/menu/vueMenu.js'
},
depcache: {
'vueHelloWorld': ['vue'], …Run Code Online (Sandbox Code Playgroud)我试图从Slim框架中定义的路由构建一个动态下拉菜单,这是我的问题 - 有没有办法从某种数组访问所有定义的静态路由?
例如,如果我像这样定义我的路线:
// Index page: '/'
require_once('pages/main.php');
// Example page: '/hello'
require_once('pages/hello.php');
// Example page: '/hello/world'
require_once('pages/hello/world.php');
// Contact page: '/contact'
require_once('pages/contact.php');
Run Code Online (Sandbox Code Playgroud)
每个文件都是一个单独的页面,如下所示
// Index page
$app->get('/', function ($request, $response, $args) {
// Some code
})->setName('index');
Run Code Online (Sandbox Code Playgroud)
我想从某种数组访问所有这些定义的路由,然后使用该数组在我的模板文件中创建一个无序的HTML列表.
<ul>
<li><a href="/">Index</a></li>
<li><a href="/hello">Hello</a>
<ul>
<li><a href="/hello/world">World</a></li>
</ul>
</li>
<li><a href="/contact">Contact</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
每当我更改已定义的路线时,我希望此菜单随之改变.有没有办法实现这个目标?
我正在使用Slim v3 php框架并集成了PHPMailer来发送邮件.我不使用像Twig这样的模板引擎,但我宁愿使用普通的PHP.
我的想法是在单独的文件中为电子邮件制作HTML5模板,类似于常规页面模板,然后将一些变量传递给它,渲染并发送它.除了一个部分外,它一切正常 - 渲染输出也有渲染的标题信息.
这就是我的代码的样子,当然简化了
// Store variables in an array
$email_content = array(
'email__name' => $_POST['name'],
'email__from' => $_POST['from'],
'email__message' => $_POST['message']
);
// Render email template
$template = $this->view->render($response, "email/simple_email.phtml", $email_content);
Run Code Online (Sandbox Code Playgroud)
然后我用PHPMailer发送它
$mail->msgHTML($template);
Run Code Online (Sandbox Code Playgroud)
问题是,除了HTML内容之外,我得到了这个标题数据,这在发送的电子邮件中可见:
HTTP/1.1 200 OK Content-Type: text/html; charset=UTF-8
Run Code Online (Sandbox Code Playgroud)
有没有办法在没有这个的情况下渲染输出?目前我正在使用str_replace()删除它,但我想有一个优雅的,内置的解决方案来处理这个?